2016-12-04 5 views
-1
HashMap h = new HashMap(); 
    Collection c = h.values(); 
    Object[] a = c.toArray(); 
    LinkedList<Object[]> l = new LinkedList<Object[]>(); 
    l.addFirst(a); 
    TreeSet<Object[]> t = new TreeSet<Object[]>(l); //throws ClassCastException exception 

私は契約に違反していないので、この例外は奇妙です。なぜこのコードは例外をスローする

+0

ここに奇妙である唯一のものですなぜその例外がスローされるのかを確認するコンストラクタを作成します。 – EJP

答えて

6

要素がすべてComparableを実装していないコレクションが渡された場合、TreeSetコンストラクタはClassCastExceptionをスローします。 オブジェクト[Comparableを実装していません。

詳細はconstructor referenceを参照してください。

ClassCastException - Cの要素はComparableでないか、相互に比較可能でない場合 NullPointerException - 指定されたコレクションがnullである場合、あなたが見ていない理由を

関連する問題