这是一个澄清我的意思的例子:假设我有两个类:
class A {
boolean isEqual(A instance);
}
和
class B {
boolean isEqual(B instance);
}
Java是否有可能定义诸如
之类的接口interface I {
// signature for isEqual(...) here
}
以便所有实现中的isEqual方法都采用实现类型的参数?像
class C implements I {
boolean isEqual(C instance);
}
提前致谢!
答案 0 :(得分:4)
我认为这就是你要找的东西:
interface Equatable<T> {
public boolean isEqual(T instance);
}
class C implements Equatable<C> {
boolean isEqual(C instance);
}
这类似于标准Comparable
界面。
答案 1 :(得分:1)
Java是否有可能定义一个接口,例如......
是的,通用形式:
public interface I<T> {
public boolean isEqual(T instance);
}
public class C implements I<C> {
@Override
public boolean isEqual(C instance) {
return false;
}
}
或者,例如,如果课程A
,B
和C
继承了某些超类,请说DD
。
所以你可以写:
interface I {
boolean isEqual(<? extends DD> instance);
}