我正在铸造列表<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'是同一个对象,你刚才的类型是错误的。 –
如果你举了一个具体的例子,它会有所帮助。 –
谢谢,托马斯。我编辑了这个问题来包含一个例子。 –