Java8新特性 - Optional应用
生命不息,写作不止 继续踏上学习之路,学之分享笔记 总有一天我也能像各位大佬一样 一个有梦有戏的人 @怒放吧德德分享学习心得,欢迎指正,大家一起学习成长!
文章插图
目录
- Java8新特性 - Optional应用
- 简介
- Optional判断是否为空
- Optional设定默认值
- Optional过滤
- 类方法
Optional判断是否为空optional提供了两种方法,一个是ofNullable(args),这个是可以传递空对象 , 并且不会出现空指针异常;另一个是of(args),这个一旦传递空对象,就会报空指针异常 。
public static void main(String[] args) {Integer integer = null;Optional<Integer> optionalInteger = Optional.ofNullable(integer);Optional.of(integer);}
在ofNullable方法是不会报出空指针,而在of方法时,对象为空则会空指针异常 。文章插图
通过Optional的ofNullable可以判断对象是否为空 , 并且能够返回一个Optional的对象,这个对象可以通过get()方法来得到相应的类型,并且二者的hashcode是一致的 。
Student student = new Student("lyd", 99);Optional<Student> optionalInteger = Optional.ofNullable(student);Student i = optionalInteger.get();System.out.println("原本的hashcode: " + student.hashCode());System.out.println("Optional的hashcode: " + i.hashCode());
结果:文章插图
通过Optional.ofNullable(student).isPresent() 来判空,isPresent结果为true表示不为空 , isPresent返回为false表示为空 。
Optional设定默认值Option提供了可以设置默认值的方法,可以令为空的对象初始化默认值 。
public static void main(String[] args) {Integer num = null;Integer number = 18;Integer orElse = Optional.ofNullable(num).orElse(12);Integer anElse = Optional.ofNullable(number).orElse(12);System.out.println("orElse: " + orElse);System.out.println("anElse: " + anElse);}
结果输出orElse: 12anElse: 18
Optional过滤optional可以实现参数过滤,可以自己重写过滤规则 。与Stream流过滤一样 , 也是通过实现匿名内部类new Predicate得到 。public static void main(String[] args) {Integer n = 18;Optional<Integer> num = Optional.ofNullable(n);Integer integer = num.filter(number -> number > 5).get();System.out.println(integer);}
类方法文章插图
工作繁忙也需要学习 。
创作不易 , 如有错误请指正,感谢观看!记得点赞哦!
推荐阅读
- 赛马娘里见光钻专属称号怎么获取
- steam如何通过好友码加好友(steam怎么看好友愿望单)
- 怎样快速赚钱(一天几十块的副业)
- 狼人杀该怎么玩(狼人杀的危害有多大)
- steam超过退款条件如何退款(steam怎么催促客服退款)
- 明日之后第五季什么时候更新
- QQ号怎么注册(qq注册日期哪查的到)
- 文胸尺码对照表【附胸围正确测量方法】
- 六人国战怎么玩三国杀(三国杀国战版本怎么玩)
- 极无双2赵云获取方式