public interface IEq<T> {
public abstract Boolean testEqual(final T y);
public default Boolean testNotEqual(final T y) {
return !this.testEqual(y);
}
}
public interface IOrd<T> extends IEq<T> {
public abstract Boolean lessEqualThan(final T y);
public default T min(final T y) {
if(lessEqualThan(y)) return this; // <--- ERROR: cannot convert from IOrd<T> to T
else return y;
}
}
此 OOP 样式代码与https://en.wikipedia.org/wiki/Bounded_quantification非常相似。
不同之处在于我将外部函数 (Fmin) 移动到 Object 方法 (min)
我的问题是:是否可以使用 f 有界量化在具有默认实现(min:T -> T)的通用接口(IOrd)中返回“this”?