Ich bin Casting Liste <T> <String> zur Liste. getClass() -Methode für ein beliebiges Element der Liste gibt die tatsächliche Elementklasse von List, d. h. T statt String, zurück. Sollte Java nicht String anstelle der tatsächlichen Klasse zurückgeben, da die Liste in die Liste von String gegossen wurde?Casting Liste <T> zur Liste <String> Typ
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
Casting ändert ein Objekt in Java nicht, im Gegensatz zu C++. Sie sagen Java nur, dass der Typ T "String" war. Wenn Sie 'List > aList = neue Liste()' und später Cast 'List sList = (Liste ) aList;', 'sList' ist das gleiche Objekt, Sie haben gerade seinen Typ falsch. –
Es würde helfen, wenn Sie ein konkretes Beispiel geben würden. –
Danke, Thomas. Ich habe die Frage bearbeitet, um ein Beispiel hinzuzufügen. –