gpt4 book ai didi

java - Guava 是否为身份平等提供 Predicates.is(T) (a la Predicates.equalTo(T t))?

转载 作者:搜寻专家 更新时间:2023-10-31 20:15:35 27 4
gpt4 key购买 nike

我没有找到恒等式 Predicate我预计在 com.google.common.base.Predicates所以我把它搞砸了。我发现它对于单元测试中关于集合的精确行为的断言很有用(例如 Multiset<T> )这已经存在了吗?如果不是,我认为应该,但也许有一些我没有考虑的事情?

/** @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);
}

最佳答案

不,它不是,它也在 idea graveyard 中作为不会完成的事情 (Predicates.sameAs)。我想这或多或少是出于 Mark Peters 给出的原因。

关于java - Guava 是否为身份平等提供 Predicates.is(T) (a la Predicates.equalTo(T t))?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6323713/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com