我正在鑄造列表<T>至列表<字符串>。列表的任何元素上的getClass()方法返回List的元素的實際類,即T而不是String。不應該Java返回字符串而不是實際的類,因爲列表被轉換爲字符串列表?鑄造列表<T>至列表<String>類型
public cast (List<?> unsortedList) {
List<String> unsortedListOfPrimitives = (List<String>)unsortedList;
System.out.println(unsortedListOfPrimitives.get(0).getClass());
}
cast(List<BigDecimal> unsortedList);
Output : java.math.BigDecimal
與C++不同,Casting不會改變Java中的對象。你只是告訴Java T類型是「String」。如果你有'列表> aList =新列表()'和後面的''列表 sList =(列表)aList;','sList'是同一個對象,你剛纔的類型是錯誤的。 –
如果你舉了一個具體的例子,它會有所幫助。 –
謝謝,托馬斯。我編輯了這個問題來包含一個例子。 –