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()); }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。