我有一個重新編寫java泛型的quetion。 據我所知,一般的信息只能在編譯的時候,通過一個名爲「類型擦除」過程中的所有類型的信息 消失一旦代碼被編譯和.class文件是由java編譯器如何知道jar中代碼的泛型類型信息?
即一旦java文件是編譯後,列表myList = new arrayList(),即.class文件字節碼具有的內容,即使列表被聲明爲.java文件中的字符串列表。
話雖如此,考慮下面的情況。
我有一個方法,一個罐子簽名
public void check(List<String> p)
當我把這個方法從另一個代碼,編譯器強制執行檢查方法的參數應該是List<String>
而已,沒有別的。
現在,由於jar(.class文件)中存在檢查方法,如果在製作.class文件時TYPE信息 已被移除,編譯器如何知道List<String>
所需的TYPE信息?
你的問題不包含一個通用的例子...? –