public class<E extends aninterface> AClass{
public AClass(){
}
public void amethod(E element){
//something
}
}
public class B implements aninterface{
}
呼叫代碼:
aninterface f = new B();
AClass<B> ac = new AClass<B>();
ac.amethod(f);
它說f是類型aninterface
但參數的類型是 'E'
我不明白仿製藥的哪一點,如果我不能做這個?
這個例子首先與泛型有什麼關係?泛型不允許在沒有它們的情況下不應該做的任何事情。他們只是節省你一些打字。如果你重寫你的代碼沒有泛型,它不會工作的原因很明顯。 – user1096188 2012-07-14 21:55:58
將'E'更改爲'aninterface'並且它可以工作.... – 2012-07-14 21:58:22
是的,它會和?也許你認爲它應該工作,因爲f實際上是B?那麼,這將工作在python,紅寶石或PHP,但不是在Java和C#。 – user1096188 2012-07-14 22:05:05