java8--- Predicate 意义 代码

Posted 雪洗中关村

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java8--- Predicate 意义 代码相关的知识,希望对你有一定的参考价值。

 

 //为了去除 DiyInterface 这个函数式接口,可以用通用函数式接口 Predicate 替代如下: https://blog.csdn.net/u011848397/article/details/89074794
    public class People2{
        private List<Person> persons= new ArrayList<>();
        public List<Person> getMaleList(Predicate<Person> predicate) {//通用函数式接口
            List<Person> res = new ArrayList<>();
            persons.forEach(person -> {
                if (predicate.test(person)) {//调用 Predicate 的抽象方法 test
                    res.add(person);
                }
            });
            return res;
        }
    }

    //还原:
    interface DiyInterface {
         boolean test(Person person);
    }
    public class People {
        private List<Person> persons= new ArrayList<Person>();
        public List<Person> getMaleList(DiyInterface filter) {//自定义函数式接口
            List<Person> res = new ArrayList<>();
            persons.forEach((Person person) -> {
                if (filter.test(person)) {
                    //调用 PersonInterface 的方法
                    res.add(person);
                }
            });
            return res;
        }
    }
   
    public class Person {
    }

以上是关于java8--- Predicate 意义 代码的主要内容,如果未能解决你的问题,请参考以下文章

使用lambda表达式和函数式接口Predicate

探索Java8:Predicate接口的使用

Java lamda和predicate用法例子

Java lamda和predicate用法例子

java集合-Java8新增的Predicate操作集合

了解一下 Java 8 Predicate 函数接口