我如何 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);
    }
    ...
}

Ideone demo