これは不可能だと思いますが、試してみましょう:
ArrayListの次元とリストのbottomtypeを出力するような方法でルーチンanalyzeArrayList()を書くことは可能ですか?
サンプル コードは次のように表示されます。
次元 = 2 および下の型 = クラス java.lang.Float
次元 = 3 および下の型 = クラス java.lang.Integer
パラメータ s は、他の型のインスタンスではなく、常に ArrayList のインスタンスであると仮定します。リストは空かもしれませんが、null ではないことに注意してください。
void analyzeArrayList(Object s)
{
int dimension;
String typeString;
//<Some code here!>
System.out.println("Dimension = "+dimension+" and Bottom type = "+typeString);
}
Object s = new ArrayList<ArrayList<Float>>();
Object t = new ArrayList<ArrayList<ArrayList<Integer>>>();
.
.
analyzeArrayList(s);
analyzeArrayList(t);
これに対するコメント:
フィールドを持つオブジェクトがある場合、それは面白いです
ArrayList<ArrayList<Float>>
次に、メソッドを書くことができます
void analyzeArrayList(Field s)
Field s が ArrayList を表していることがわかっている場合。