キャスティングリスト<T>リスト<文字列>です。 listの任意の要素に対するgetClass()メソッドは、Listの要素の実際のクラス、つまりStringではなくTを返します。リストは文字列のリストにキャストされたので、Javaは実際のクラスの代わりにStringを返すべきではありませんか?キャスティングリスト<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++とは異なり、Javaではオブジェクトを変更しません。タイプTが "String"であることをJavaに伝えるだけです。あなたが 'List > aList = new List()'を持っていて、後で 'List sList =(List )aList;'、 'sList'が同じオブジェクトならば、あなたはその型を間違えてしまいました。 –
具体的な例を挙げれば助けになります。 –
ありがとう、トーマス。私は例を含めるために質問を編集しました。 –