繁体   English   中英

与需要签名中实现类型的参数的方法进行接口

[英]Interface with a method that requires parameter of implementation type in signature

这是一个示例,以阐明我的意思:假设我有两个类:

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

提前致谢!

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

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

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

这类似于标准的Comparable接口。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM