Optional类
程序员文章站
2022-03-04 12:33:27
...
Optional类为Java8新引入的一个类,Optional是一个可以为null
的容器对象,Optional中的一些方法可以判断容器中的这个值是否为null
,在编码中可以使用这个类来判断某个参数或者某个方法的返回值是否为null
,可以很直接的解决NullPointException
的问题。下面是Optional类的几个方法。
首先看一下Optional类的of()
方法 和ofNullable()
方法,他俩都是将一个值存入Optional容器中。of和ofNullable最大的区别就是of()
方法传入的参数不能为null,如果传入参数为null,则抛出NullPointerException ,而ofNullable()
方法传入的参数可以为null。
-
of()
方法:
public static void main(String[] args){
//创建Optional对象实例
Optional<String> name = Optional.of("GAME START!");
//会抛出NullPointException
Optional<String> nullName = Optional.of(null);
}
-
ofNullable()
方法:
public static void main(String[] args){
//创建Optional对象实例
Optional<String> name = Optional.ofNullable("GAME START!");
//创建一个空的Optional对象实例
Optional<Stirng> empty = Optional.ofNullable(null);
}
-
isPresent()
方法,如果值存在放回true
,否则返回false
:
public static void main(String[] args){
Optional<String> name = Optional.of("Game start!");
if(name.isPersent()){
//调用get()返回已存在的值
System.out.println(name.get());//输出Game start!
}
}
-
orElse()
方法,如果Optional容器中有值则将其返回,否则返回orElse()
中的值。
public static void main(String[] args){
Optional<String> name = Optional.ofNullable("game start!");
Optional<String> empty = Optional.ofNullable(null);
//如果值不为null,orElse方法返回Optional实例的值。如果为null,返回传入的消息。
System.out.println(name.orElse("game over!"));//输出:game start!
System.out.println(empty.orElse("game over!"));//输出:game over!
}