0

if ステートメントでエラーが発生するのはなぜですか? ネストされた配列リストが保持できるデータ型を見つけるにはどうすればよいですか?

ArrayList<List<? extends Object>> table;
table = new ArrayList<List<? extends Object>>();
table.add(new ArrayList<String>());
if( table.get(0) instanceof List<String> ){
//Do something
}
4

2 に答える 2

3

別の方法として、String と Integer の ArrayList の 2 つのサブクラスを作成し、それらをチェックすることができます。

public class StringList extends ArrayList<String> {
   //Add needed constructors here
}

public class IntegerList extends ArrayList<Integer> {
   //Add needed constructors here
}

次に、次のことができます。

ArrayList<List<? extends Object>> table;
table = new ArrayList<List<? extends Object>>();
table.add(new StringList());
if( table.get(0) instanceof StringList ){
//Do something
}
于 2012-11-04T19:20:15.063 に答える
2

instanceofジェネリック型では使用できません。ジェネリック型は実行時に消去されます。

于 2012-11-04T18:47:10.777 に答える