我的情況是不同的,但作爲一個例子如何限制普通類型的接口只接受實施者類
public interface Comparable<T>
會允許我說:
public class MyType implements Comparable<OtherType>
但這是很少你想要什麼實現。
有沒有辦法來力我說:
public class MyType implements Comparable<MyType>
我得到的最接近是:
public interface Comparable<T extends Comparable<T>>
這隻能部分,因爲它不會允許OtherType
如果它本身不具有可比性,但會允許:
public class MyType implements Comparable<Integer>
滿足條件。
無法在Java中完成。至少不是在編譯時。 – shmosel
也許如果你說爲什麼你需要在編譯時執行這樣的限制,我們可以拿出不同的設計。請參閱http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem – SergGr
@SergGr簡單地減少運行時檢查。該接口的默認方法會執行整個註釋處理,並嚴格要求它們具有相同類型(或至少是一個子類型)。 – Mordechai