已經有幾次當我覺得有必要做一些這樣的:的Java界通用的制約領域
private <T extends Type> Map<GenericClass1<T>,GenericClass2<T>> map;
...或者諸如此類的話。實質上,在map的兩個參數中使用相同的邊界。 (這不是一個實際的例子,只是給出了這個概念。)
我知道這(不幸)是不可能的,這只是在類的定義和方法簽名可用。然而,我的問題是爲什麼它不在字段上?是純粹的設計選擇還是背後有一些技術原因,我錯過了?我已經有了一個想法,並且不知道爲什麼從技術角度來看這是不可能的,就我所能看到的一切來說,編譯器可以正確地解決它,並且在運行時不需要任何通用信息。
@「在運行時不需要任何通用信息」,如果編譯器允許您在運行時根據可能的情況執行某些操作,則語言不會再輸入。鍵入是限制。 – mncl 2011-02-01 11:09:35