Optional类
程序员文章站
2022-03-04 12:20:21
...
什么是Optional
Optional是Java8新引入的一个容器类,该容器类被final修饰且是单例模式的,该容器类对象可以一个保存空值或非空值,主要用于减少代码中大量的空检查语句以及降低程序出现NullPointerException概率。
为什么要使用Optional
我们知道作为Java开发人员,如果要评选出一个最常见的异常榜,那么NullPointerException必在榜单前三之列,而对每个对象进行空检查时又需要做不少的工作。此时使用Optional容器代替空检查语句,也许是个不错的选择。
如何得到Optional对象
由于Optional类的特殊性,所以无法通过常规的new对象的方式创建该对象,按照单例模式一般的套路,此时应该调用其公有的静态方法获取对象。
Optional类的公有静态方法一共有三个empty of ofNullable。
empty方法不接收参数,返回一个空的Optional对象。
of方法接受一个非空参数,返回一个保存该参数的Optional对象。
ofNullable方法接受一个参数,若参数非空则返回保存该参数的Optional对象。
若参数为空则返回一个保存该参数的Optional对象。
Optional的简单使用
数据准备:
public class Main {
private static ArrayList<Optional> optList;
public static void main(String[] args) {
init(5);
}
public static void init(int i){
optList = new ArrayList(i);
Random random = new Random();
for (int i1 = 0; i1 < i; i1++) {
int i2 = random.nextInt(127);
System.out.print(i2+"\t");
optList.add(Optional.ofNullable(i2>=64?i2:null));
}
System.out.println();
}
}
案例1:使用Optional的方法判断对象是否为空
Idea代码
public static void main(String[] args) {
init(5);
optList.forEach(x->System.out.print(x.isPresent()+"\t"));
}
控制器输出
案例2:使用Optional中的方法判断该数据是否为空,若不为空则输出该容器中的值
public static void main(String[] args) {
init(5);
optList.forEach(x-> {
if(x.isPresent()){
System.out.print(x.get()+"\t");
}
});
}
控制台输出
上一篇: 微信小程序转换器之 loader设计实现
下一篇: win7 如何搭建php环境变量
推荐阅读
-
PHP类(Class)入门教程第1/2页
-
php封装好的人民币数值转中文大写类,
-
新手,关于类内部变量的引用。
-
php codeigniter框架分页类
-
Java并发之ReentrantLock类源码解析
-
JQUERY JSON的反序列化类 using问题的解决方法
-
php 子类重写父类值?
-
检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005 拒绝访问
-
河南最好的医科大学在哪里?附河南本科类医学院校排名(2021年参考)
-
排名前十政法大学有哪些?附中国政法类大学排行榜2020年最新版一览表