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());
            }
        });
    }
    
    
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM