java8新特性Optional功能简介说明
下文笔者讲述Java8中Optional功能简介说明,如下所示
Optional功能简介
Optional.of(T t) : 创建一个Optional实例 Optional.empty() : 创建一个空的Optional实例 Optional.ofNullable(T t) : 若t不为null 创建Optional实例,否则创建空实例 isPresent() : 判断是否包含值 orElse(T t) : 如果调用对象包含值,就返回该值,否则返回t orElseGet(Supplier s) : 如果对象调用对象包含值,返回该值,否则返回s获取的值 map(Function f) : 如果有值对其处理,并返回处理后的Optional,否则返回Optional.empty() flatMap(Function f) : 与map类似,要求返回值必须是Optional例
@Test
public void test04() {
/**Optional.of( new Use( ) ) 里面的对象不能为空,如果为空就会报异常*/
Optional<Use> optionalUse = Optional.of( new Use( ) );
Use use = optionalUse.get();
System.out.println(use);
}
@Test
public void test05() {
/**Optional.empty( ) 里面的对象可为空*/
Optional optional = Optional.empty();
System.out.println(optional.get());
}
@Test
public void test06() {
/** Optional.ofNullable( new Use( ) ) 里面的对象不可为空 也可以不为空*/
Optional optional = Optional.ofNullable( new Use( ) );
Optional optional1 = Optional.ofNullable( null );
//判断是否有值
if(optional1.isPresent()) {
System.out.println(optional1.get());
}
optional1.orElse( "空" );
Object optional2 = Optional.ofNullable( null )
/**如果Optional.ofNullable( null )里面的参数为null,就执行orElse()*/
.orElse( "没有值" );
System.out.println(optional2);
Object o = Optional.ofNullable( null )
/**如果Optional.ofNullable( null )里面的参数为null,就执行orElseGet() */
.orElseGet( () -> new Use( ) );
System.out.println(o);
}
@Test
public void test07() {
Optional<String> optionalS = Optional.ofNullable( new Use( "a",1,2 ) )
/**map里面有个消费型接口,传一个参数,返回一个属性*/
.map((x)-> x.getName() );
System.out.println(optionalS.get());
Optional<String> optionalS1 = Optional.ofNullable( new Use( "a",1,2 ) )
/**flatMap传一个参数,返回的数据必须要用Optional包装,可以进一步防止空指针*/
.flatMap( (x) -> Optional.of( x.getName() ) );
System.out.println(optionalS1.get());
}
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


