Java|Java 8 Optional使用上的坑
试问以下语句有问题吗?
【Java|Java 8 Optional使用上的坑】Optional stringOptional = Optional.of(stringvariable)Yes. Optional.of方法必须传递一个非null的变量,如果不做判断传入,肯定有一天会抛出NPE(NullPointerException)。
stringOptional.of("0.0f");试问这样stringOptional.get()是不是获取0.0f字符串了?
No. 因为Optional类像String一样都是final的,对象的生命周期其各个字段的值不能修改,因此看Optional的源码是这样子的:
public static Optionalof(Tvalue) {因此正确写法:
return new Optional<>(value);
}
stringOptional = stringOptional.of("0.0f");总之,对于一个新的类,新的API如果不熟悉它的内部实现,贸然使用可能造成严重BUG。
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 由浅入深理解AOP
- 【译】20个更有效地使用谷歌搜索的技巧
- mybatisplus如何在xml的连表查询中使用queryWrapper
- MybatisPlus|MybatisPlus LambdaQueryWrapper使用int默认值的坑及解决
- MybatisPlus使用queryWrapper如何实现复杂查询
- 事件代理
- Java|Java OpenCV图像处理之SIFT角点检测详解
- java中如何实现重建二叉树
- iOS中的Block