2011-06-18 37 views
0

,我讀了我的書,這樣的代碼:的Java:通用類

class B extends A {...} 
class G<E> { 
public E e; 
} 
G<B> gb = new G<B>(); 
G<A> ga = gb; 
ga.e = new A(); 
B b = gb.e; // Error 

爲什麼B b = gb.e;出現錯誤?我們沒有分配任何東西給b,因爲那個gb.e來自類型B.

+0

你確定錯誤只出現在行B b = gb.e;'?而不是在'G ga = gb;'? –

+0

恐怕,這根本就不是[至少對我而言](http://www.ideone的.com/6gREv)。隨意發佈代碼可以在同一行中重現相同的錯誤。在我看來,和Eclipse編譯器javac和ideone一樣,由於使用了嚴格的打字檢查,'G ga = gb;'這行應該出錯。 –

回答