我希望能產生一些基類,其中將包括類似如下的Java泛型有兩類
class Container<T extends Containee>
{
T containee;
public T getContents(){return containee;}
public void setContents(T contents){ containee = contents; containee.setContainer(this); }
}
class Containee<T extends Container>
{
T container;
public T getContainer(){return container;}
public void setContainer(T container){this.container = container;}
}
這裏有,我想我可以輕鬆使用循環定義問題通配符
class Container<T extends Containee<?>>
class Containee<T extends Container<?>>
除了編譯器抱怨containee.setContainer(this)
。我已經破解了一些特殊的解決方案,可以讓超類進行編譯,但沒有任何方法可以用於子類,例如
class Foo extends Container<Bar>
class Bar extends Containee<Foo>
仿製藥教程和常見問題似乎沒有任何明顯的與此有關。如何用泛型表達這種關係?
感謝
我問同樣的問題前,簡單的答案是它不可能與泛型看到:http://stackoverflow.com/questions/2567595/creating-circular-generic-references – 2011-03-09 16:23:12