番石榴是否提供用于身份相等的Predicates.isTla Predicates.equalToT t?

问题描述

| 我没有在
com.google.common.base.Predicates
中找到期望的ѭ0。我发现它对于单元测试中有关集合的精确行为的断言很有用(例如ѭ2useful),这已经存在吗?如果没有,我认为应该,但是也许我没有考虑?
/** @see Predicates#is(Object) */
private static class IsPredicate<T> implements Predicate<T>,Serializable {
  private final T target;

  private IsPredicate(T target) {
    this.target = target;
  }
  public boolean apply(T t) {
    return target == t;
  }
  @Override public int hashCode() {
    return target.hashCode();
  }
  @Override public boolean equals(Object obj) {
    if (obj instanceof IsPredicate) {
      IsPredicate<?> that = (IsPredicate<?>) obj;
      return target.equals(that.target);
    }
    return false;
  }
  @Override public String toString() {
    return \"Is(\" + target + \")\";
  }
  private static final long serialVersionUID = 0;
}

/**
 * Returns a predicate that evaluates to {@code true} if the object being
 * tested {@code ==} the given target or both are null.
 */
public static <T> Predicate<T> is(T target) {
  return (target == null)
      ? Predicates.<T>isNull()
      : new IsPredicate<T>(target);
}
    

解决方法

        不,不是这样,它也存在于想法墓地中,因为它不会完成(
Predicates.sameAs
)。我想这大概是Mark Peters给出的原因。     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...