我如何 return 使用默认方法的功能接口的反向接口
how can I return the inverse Interface of an functional Interface using default method
我想 return 使用默认方法“negate()”建立“关系”,它总是 return 方法 test() 的对立面。我该怎么做?
public interface Relation<X,Y> {
boolean test(X x, Y y);
default Relation<X,Y> negate() {
// TODO
Relation<X, Y> relation = new Relation<X, Y>() {
public boolean test(X x, Y y) {
return !this.test(x, y);
}
};
return relation;
}
}
我试过这段代码,但它给我堆栈溢出错误
由于 Relation
当前形式是一个功能接口,我们可以 return 来自 negate()
的 lambda 反转 test(...)
的结果:
public interface Relation<X, Y> {
...
default Relation<X, Y> negate() {
return (x, y) -> !this.test(x, y);
}
...
}
我想 return 使用默认方法“negate()”建立“关系”,它总是 return 方法 test() 的对立面。我该怎么做?
public interface Relation<X,Y> {
boolean test(X x, Y y);
default Relation<X,Y> negate() {
// TODO
Relation<X, Y> relation = new Relation<X, Y>() {
public boolean test(X x, Y y) {
return !this.test(x, y);
}
};
return relation;
}
}
我试过这段代码,但它给我堆栈溢出错误
由于 Relation
当前形式是一个功能接口,我们可以 return 来自 negate()
的 lambda 反转 test(...)
的结果:
public interface Relation<X, Y> {
...
default Relation<X, Y> negate() {
return (x, y) -> !this.test(x, y);
}
...
}