どうして私はこれをすることが許されているのですか?
TreeSet<Object> treeSet = new TreeSet<Object>();
treeSet.add(new Object());
しかし、これではありません:
final List<Object> objects = new ArrayList<Object>();
Collections.sort(objects);
最初のものは私にClassCastExceptionを与えますが、2番目のものは私にコンパイルエラーを与えます。私が理解しているように、実際の問題はどちらの場合も同じです。Comparableインターフェースjava.lang.Object
を実装していません。
更新:うーん、何らかの理由で、これはJava 7にのみ適用され、6には適用されません。私は愚かで疲れていますか?誰かがこれに光を当ててくれませんか?
更新#2:Javaのバージョンに応じて異なる結果が得られます。写真をご覧ください: