簡體   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