java8 optional操作
Posted g177w
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java8 optional操作相关的知识,希望对你有一定的参考价值。
目标:测试option的过滤,链式操作:
代码:
package test; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Optional; import java.util.function.Consumer; import java.util.function.Predicate; public class optionnaltest { class user{ String name; String age; user(){} user(String name,String age){this.name = name;this.age=age;} void intoduce() { System.out.println("i am "+name+",i am "+age+" this year!"); } String tosString() { return new StringBuffer().append("{name:").append(name+",age:").append(age+"}").toString(); } } public static void main(String[] args) { List<user> list = new ArrayList<user>(); Arrays.asList(10,11,12,14,16,20).forEach(new Consumer<Integer>() { @Override public void accept(Integer t) { optionnaltest op = new optionnaltest(); if(t <12) list.add(op.new user()); else list.add(op.new user("name"+t,t+"")); } }); List<user> tm = new ArrayList<user>(); list.forEach(new Consumer<user>() { @Override public void accept(user t) { boolean flag = Optional.ofNullable(t).filter(s->s.name!=null).isPresent(); tm.add(!flag?t:null); } }); list.removeAll(tm); list.forEach(new Consumer<user>() { @Override public void accept(user t) { System.out.println(t.tosString()); } }); } }
以上是关于java8 optional操作的主要内容,如果未能解决你的问题,请参考以下文章
Java8—Stream流式编程Optional容器的详细介绍两万字