Java 命名谓词

Java 命名谓词,java,lambda,Java,Lambda,我有一个类验证私有成员变量是否匹配作为谓词传入的某些条件 public class Verifiable<T> { private final T t; private Verifiable(T t) { this.t = t; } public static <T> Verifiable<T> of(T objToBeVerified) { return new Verifiable<T>(objToBeVer

我有一个类验证私有成员变量是否匹配作为谓词传入的某些条件

public class Verifiable<T> {
  private final T t;

  private Verifiable(T t) {
    this.t = t;
  }

  public static <T> Verifiable<T> of(T objToBeVerified) {
    return new Verifiable<T>(objToBeVerified);
  }

  public List<Predicate<T> verify(List<Predicate<T>> predicates) {
    // test against each predicate and return the failed predicates
  }
}

Usage:
  List<Predicate<T>> predicatesToTest = ...
  List<Predicate<T>> failedPredicates = Verifiable.of(someObj).verify(predicatesToTest);
可验证的公共类{
私人期末考试;
私有可验证(T){
t=t;
}
公共静态可验证的(T objToBeVerified){
返回新的可验证(objToBeVerified);
}

公共列表因此,您需要将
字符串
绑定到
谓词

1) 创建类似元组的东西,这是
NamedPredicate
背后的想法

public class NamedPredicate<T> {
  Predicate<T> predicate ;
  String name ;
}

因此,您需要将
字符串
绑定到
谓词

1) 创建类似元组的东西,这是
NamedPredicate
背后的想法

public class NamedPredicate<T> {
  Predicate<T> predicate ;
  String name ;
}

因此,您需要将
字符串
绑定到
谓词

1) 创建类似元组的东西,这是
NamedPredicate
背后的想法

public class NamedPredicate<T> {
  Predicate<T> predicate ;
  String name ;
}

因此,您需要将
字符串
绑定到
谓词

1) 创建类似元组的东西,这是
NamedPredicate
背后的想法

public class NamedPredicate<T> {
  Predicate<T> predicate ;
  String name ;
}

你用的是Java7还是Java8?@AmirAfghani我想是Java8,他谈到了lambda:)@partheinstein为什么不在
verify(…)
中使用参数
Map
,而不是
List
?@Nizil谢谢。将其作为答案发布,我会这样标记。另一种选择是使用元组列表(字符串、谓词)。在网站上,Scala内置了对元组的支持。您使用的是Java7还是Java8?@AmirAfghani我想是Java8,他谈到了lambda:)@partheinstein为什么不在
验证(…)中使用参数
映射
而不是
列表
?@Nizil谢谢。将其作为答案发布,我将其标记为答案。另一个选项是使用元组列表(字符串、谓词)。在网站上,Scala内置了对元组的支持。您使用的是Java7还是Java8?@AmirAfghani我想是Java8,他谈到了lambda:)@partheinstein为什么不在
验证(…)中使用参数
映射
而不是
列表
?@Nizil谢谢。将其作为答案发布,我将其标记为答案。另一个选项是使用元组列表(字符串、谓词)。在网站上,Scala内置了对元组的支持。您使用的是Java7还是Java8?@AmirAfghani我想是Java8,他谈到了lambda:)@partheinstein为什么不在
验证(…)中使用参数
映射
而不是
列表
?@Nizil谢谢。将其作为答案发布,我将其标记为答案。另一个选项是使用元组列表(字符串、谓词)。在站点说明中,Scala内置了元组支持。如果您想一直发挥功能,可以使用谓词。值().stream.filter(谓词->!谓词。测试(t))获取一个失败谓词流。如果您想一直运行,可以执行predicates.values().stream.filter(predicate->!predicate.test(t))来获取一个失败谓词流。如果您想一直运行,可以执行predicates.values().stream.filter(predicate->!predicate.test(t))获取一个失败谓词流。如果您想一直正常工作,可以执行predicates.values().stream.filter(predicate->!predicate.test(t))来获取一个失败谓词流。