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容器的详细介绍两万字

Java8中的Optional操作

Java8之Optional判空,简化判空操作

java8新特性→Optional:适用于层级处理非空判断(依赖上一步操作)的场合

java代码(16) ---Java8 Optional

java代码(16) ---Java8 Optional