在Java8中使用泛型的谓词

在Java8中使用泛型的谓词,java,generics,java-8,predicate,Java,Generics,Java 8,Predicate,我不熟悉Java泛型和流 代码1 Predicate<DataObject> p1 = e -> doEvaluate(e.getAttribute1()); 谓词p1=e->doEvaluate(e.getAttribute1()); 代码2 Predicate<Entry<Integer, List>> p2 = e -> doEvaluate(e.getKey()); 谓词p2=e->doEvaluate(e.getKey());

我不熟悉Java泛型和流

代码1

Predicate<DataObject> p1 = e -> doEvaluate(e.getAttribute1());
谓词p1=e->doEvaluate(e.getAttribute1());
代码2

Predicate<Entry<Integer, List>> p2 =  e -> doEvaluate(e.getKey());
谓词p2=e->doEvaluate(e.getKey());
这里DataObject是一个纯Java类,getAttribute1()是DataObject类中的getter方法。 和Entry表示hashmap的EntrySet


现在我想写一行代码,这是代码1和代码2的共同点。我该怎么做呢?

如果代码对所有版本都执行相同的操作(只是作用于不同的类),则只能将代码设置为“泛型”。这里不是这样。一个版本调用
getKey
,另一个版本不调用。
doEvaluate
方法是什么样子的?`private static Boolean doEvaluate(Object i){return true;}`那么这两个谓词有什么意义呢?只要写
x->true
…你能告诉我们你到底想做什么吗?