JDK8新特性之Optional详解,建议收藏
最近刚好有空给大家整理下JDK8的特性,这个在实际开发中的作用也是越来越重了,本文重点讲解下OptionalOptional
这个Optional类注意是解决空指针的问题1. 以前对null 的处理 @Test
public void test01(){
//String userName = "张三";
String userName = null;
if(userName != null){
System.out.println("字符串的长度:" + userName.length());
}else{
System.out.println("字符串为空");
}
}
2. Optional类
Optional是一个没有子类的工具类,Optional是一个可以为null的容器对象,它的主要作用就是为了避免Null检查,防止NullpointerException,
在这里插入图片描述3. Optional的基本使用
Optional对象的创建方式 /**
* Optional对象的创建方式
*/
@Test
public void test02(){
// 第一种方式 通过of方法 of方法是不支持null的
Optional op1 = Optional.of("zhangsan");
//Optional op2 = Optional.of(null);
// 第二种方式通过 ofNullable方法 支持null
Optional op3 = Optional.ofNullable("lisi");
Optional op4 = Optional.ofNullable(null);
// 第三种方式 通过empty方法直接创建一个空的Optional对象
Optional op5 = Optional.empty();
}
4. Optional的常用方法/**
* Optional中的常用方法介绍
* get(): 如果Optional有值则返回,否则抛出NoSuchElementException异常
* get()通常和isPresent方法一块使用
* isPresent():判断是否包含值,包含值返回true,不包含值返回false
* orElse(T t):如果调用对象包含值,就返回该值,否则返回t
* orElseGet(Supplier s):如果调用对象包含值,就返回该值,否则返回 Lambda表达式的返回值
*/
@Test
public void test03(){
Optional op1 = Optional.of("zhangsan");
Optional op2 = Optional.empty();
// 获取Optional中的值
if(op1.isPresent()){
String s1 = op1.get();
System.out.println("用户名称:" +s1);
}
if(op2.isPresent()){
System.out.println(op2.get());
}else{
System.out.println("op2是一个空Optional对象");
}
String s3 = op1.orElse("李四");
System.out.println(s3);
String s4 = op2.orElse("王五");
System.out.println(s4);
String s5 = op2.orElseGet(()->{
return "Hello";
});
System.out.println(s5);
}
@Test
public void test04(){
Optional op1 = Optional.of("zhangsan");
Optional op2 = Optional.empty();
// 如果存在值 就做什么
op1.ifPresent(s-> System.out.println("有值:" +s));
op1.ifPresent(System.out::println);
}
/**
* 自定义一个方法,将Person对象中的 name 转换为大写 并返回
*/
@Test
public void test05(){
Person p = new Person("zhangsan",18);
Optional op = Optional.of(p);
String name = getNameForOptional(op);
System.out.println("name="+name);
}
/**
* 根据Person对象 将name转换为大写并返回
* 通过Optional方式实现
* @param op
* @return
*/
public String getNameForOptional(Optionalop){
if(op.isPresent()){
String msg = //op.map(p -> p.getName())
op.map(Person::getName)
//.map(p -> p.toUpperCase())
.map(String::toUpperCase)
.orElse("空值");
return msg;
}
return null;
}
/**
* 根据Person对象 将name转换为大写并返回
* @param person
* @return
*/
public String getName(Person person){
if(person != null){
String name = person.getName();
if(name != null){
return name.toUpperCase();
}else{
return null;
}
}else{
return null;
}
}
~好了,Optional真的很简单,其实大家只要了解了它在工作中还是蛮有用的哦,欢迎点赞关注加收藏哦
http://www.ixiera.com
西伯利亚俄罗斯的阿穆尔自治州(六)阿穆尔自治州管辖范围在清朝时属于中国,属于外东北的一部分,位于黑龙江北岸,其南部和西南部与中国相邻,西部与外贝加尔边疆区毗连,北部是俄罗斯的萨哈共和国,东北部和东部与哈巴罗夫斯克边
迪拜行(2)迪拜沙漠冲沙迪拜亚特兰提斯酒店,有一个儿童乐园,儿童可以托管在里面,而且成人不能入内,统一由管理员带领小孩进出,非常安全贴心,从上午10点半开始到下午500关闭,酒店住客每住一晚可以免费入场一
7万人在柬埔寨,沦为黑户文沐沐图文审稿蟹黄捞饭制作木昜封面底图Shutterstock正文照片(图片)除标注外均来自作者到达柬埔寨暹粒的第二天,我们乘坐突突车去寻访洞里萨湖的水上浮村。从暹粒市区出发,在乡
为了修路,4963名解放军长眠于此!318川藏线究竟是怎样的工程?魔鬼公路幽灵公路死亡公路听起来就危险异常,这些路段不仅修建困难,行驶过程中也危险重重。每条公路通车的背后都有着不为人知的艰辛,享誉中外的中国的景观大道318国道,就是极好的例子!跨
甘肃省第二大的城市,面积是兰州的3倍,拥有最美的自然风光张掖,这个位于甘肃的一个地级市,这里自古以来就是拥有着最美的自然风光的地方,作为甘肃第二大的城市,张掖的面积是兰州的3倍,占地面积有38600平方公里,人口大概有113万人左右。张
格桑花开的圣地格桑花的故乡是西藏青海川西滇西北那无边的大草原,她是藏族人们视为象征着爱与吉祥的圣洁之花,它喜爱高原的阳光,也耐得住雪域的风寒。格桑在藏语里是幸福的意思,所以也就叫幸福花了。我没去
福建有个县市,年平均温度15度,避暑要带棉袄福建有一处与浙江省相邻的县市,它当地拥有特别丰富的自然资源,矿产资源,林木资源,水电资源,并且年平均气温15左右,特别适合夏季来此避暑纳凉,甚至还有人笑称来时别忘记带棉袄哦。对于这
中国的第三大岛屿,面积堪比38个澳门,未来或与大陆接壤在地理上,我国面积比较大的岛屿只有两个,一个是台湾岛,另一个是海南岛。而小岛的数量繁多,面积在500平方米以上的岛屿有6536个,总面积为7。28万平方公里,小岛多大岛少,无人岛多
从重庆到宜昌三峡游轮价格5天4晚从重庆到宜昌三峡游轮5天4晚多少钱从重庆到宜昌坐华夏神女3号游轮5天4晚的价格大概是4000元,华夏神女3号游轮是长江上面最大的游轮,绝对是新游轮,与其它游轮不同之处,第一房间多,
全国5A景点最便宜的城市,就是首都北京,门票绝不超过60元国家5A级旅游景点就像是大学中的清华北大一样,算是一种最高的荣誉,我们国家的面积这么大,大家听说过和游玩过的5A级旅游景点还是蛮多的,其实大家只要将这些5A级景点下分到每个城市,就
北京巨无霸公园火了,面积是故宫的80倍,紧靠香山却少有人知时间到了9月,在气温逐渐下降的同时,夏季也正式宣告结束,马上步入秋天,在枫叶成熟的季节,各个城市的主色调也即将要发生改变,在凉爽的秋风之中,带着家人进行一次久违的出游,可以说是一种
因颜值驻足,看价格心动!凡尔赛C5X预售豪礼大放送凡尔赛C5X是东风雪铁龙送给客户的礼物。从去年神龙文化节到今年8月,东风雪铁龙用了9个月左右的时间,不断挖掘用户偏好,力求满足用户需求,表达法系品牌对中国市场的诚意。终于在8月9日
雪铁龙C5X你们为什么不凡尔赛呢?提及法国,你脑海中印象最深的是什么?在很多电影和媒体的资料中,我们知道法国是很多人眼里是一个懂得情调,充满浪漫情怀的国度,而且法国巴黎还被称为时尚之都。事实上,法国的汽车文化,同样
雪铁龙C5X你们为什么不凡尔赛呢?提及法国,你脑海中印象最深的是什么?在很多电影和媒体的资料中,我们知道法国是很多人眼里是一个懂得情调,充满浪漫情怀的国度,而且法国巴黎还被称为时尚之都。事实上,法国的汽车文化,同样
雪铁龙C5X你们为什么不凡尔赛呢?提及法国,你脑海中印象最深的是什么?在很多电影和媒体的资料中,我们知道法国是很多人眼里是一个懂得情调,充满浪漫情怀的国度,而且法国巴黎还被称为时尚之都。事实上,法国的汽车文化,同样
因颜值驻足,看价格心动!凡尔赛C5X预售豪礼大放送凡尔赛C5X是东风雪铁龙送给客户的礼物。从去年神龙文化节到今年8月,东风雪铁龙用了9个月左右的时间,不断挖掘用户偏好,力求满足用户需求,表达法系品牌对中国市场的诚意。终于在8月9日
因颜值驻足,看价格心动!凡尔赛C5X预售豪礼大放送凡尔赛C5X是东风雪铁龙送给客户的礼物。从去年神龙文化节到今年8月,东风雪铁龙用了9个月左右的时间,不断挖掘用户偏好,力求满足用户需求,表达法系品牌对中国市场的诚意。终于在8月9日
雪铁龙C5X你们为什么不凡尔赛呢?提及法国,你脑海中印象最深的是什么?在很多电影和媒体的资料中,我们知道法国是很多人眼里是一个懂得情调,充满浪漫情怀的国度,而且法国巴黎还被称为时尚之都。事实上,法国的汽车文化,同样
香港令人窒息的城市密度对于来自德国的摄影师迈克尔沃夫(MichaelWolf)来说,深入地了解一个城市需要20年甚至更久。在香港生活了20余年的他,拍摄了有关这里的一切。在寸土寸金中,密不透风的高楼大厦
建议收藏!手把手教你百元以内独立维修吸顶灯窗帘门锁一吸顶灯的维修家庭常用的吸顶灯分为两种,一个是卧室卫生间餐厅等使用的小型吸顶灯,另一个是客厅使用大型吸顶灯。吸顶灯主要有开关线路和发光元件组成。一般线路和开关坏的几率不大,经常坏的
千万粉丝网红铁山靠被封禁曾与安妮PK爆火,多有方言粗口9月16日,抖音官方发布抖音打击低俗和不良价值观内容和帐号的公告(第二期)。值得注意的是,本次遭永久封禁的帐号包括了抖音大V铁山靠。数据显示,该账号粉丝达1269万。据悉,该主播此
23张过去VS现在的对比图,时间都去哪了?下面我们就收集到一些过去VS现在的对比图,看看时间留下的足迹。1日本东京1920年VS现代的对比照21980的中国深圳VS2018的深圳,小农村短时间直接变为大城市!3国外网友我和