1

这是一个澄清我的意思的例子:假设我有两个类:

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);
}

提前致谢!

4

2 回答 2

4

我认为你正在寻找这样的东西:

interface Equatable<T> {
    public boolean isEqual(T instance);
}

class C implements Equatable<C> {
    boolean isEqual(C instance);
}

这类似于标准Comparable接口。

于 2013-10-08T12:14:53.173 回答
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;
    }    
}

或者例如如果类ABC继承一些超类,让我们说DD

所以你可以写:

interface I {
   boolean isEqual(<? extends DD> instance);
}
于 2013-10-08T12:13:12.027 回答