をsomeMethod()
返しますCollection<Long>
。
ArrayList<Long> results = (ArrayList<Long>) someMethod();
Long value = results.get(0);
私は得るClassCastException: java.util.ArrayList cannot be cast to java.lang.Long
。System.out.println(results.get(0));
実際に試してみると、例えば が返ってきます[32]
。ぜんぜんわかりません。これがLongのArrayListです!なぜget(0)
返品するのArrayList
ですか?
これは次のことに役立ちます。
Object o = results.get(0);
ArrayList<Long> al = (ArrayList<Long>) o;
Long val = al.get(0);
しかし、なぜこれが必要なのですか?