Java 谓词和(谓词)不适用于参数谓词

Java 谓词和(谓词)不适用于参数谓词,java,generics,javafx,predicate,Java,Generics,Javafx,Predicate,我必须在实现谓词的业务对象上执行和 出现问题的代码是与和的线路: MoneyOperationFieldPredicate类: 这只是类型系统的一个限制,因为Java没有使用谓词没有生产者方法这一事实来不同地处理类型 考虑两个列表这里的问题是捕获。让我们看看这些约束意味着什么: PredicateProblem是您的第一个PredicateI将添加您可以转换谓词的内容 Predicate<? super MoneyOperation> predicate =

我必须在实现谓词的业务对象上执行和

出现问题的代码是与和的线路:

MoneyOperationFieldPredicate类:


这只是类型系统的一个限制,因为Java没有使用谓词没有生产者方法这一事实来不同地处理类型


考虑两个列表这里的问题是捕获。让我们看看这些约束意味着什么:


PredicateProblem是您的第一个PredicateI将添加您可以转换谓词的内容
        Predicate<? super MoneyOperation> predicate =
           new MoneyOperationDateWithRadioButtonsPredicate(newv, 
                  thisDayRdBtn.getValue(), date);

        filteredData.setPredicate(filteredData.getPredicate().and(predicate));
The method and(Predicate<? super capture#14-of ? super MoneyOperation>) 
in the type Predicate<capture#14-of ? super MoneyOperation> is not applicable 
for the arguments (Predicate<capture#15-of ? super MoneyOperation>)
public class MoneyOperationDateWithRadioButtonsPredicate extends MoneyOperationFieldPredicate<LocalDate> { ... }
public abstract class MoneyOperationFieldPredicate<T> implements Predicate<MoneyOperation> { ... }
setPredicate(a -> predicate1.test(a) && predicate2.test(b))
setPredicate(Stream.of(predicate1, predicate2).map(a -> a).reduce(Predicate::and))