私は同等クラスを実装するカスタムクラスを作成しています。私の定義では比較できない2つのオブジェクトを比較しようとすると、何らかの例外をスローしたいと思います。 APIに既に適切な例外がありますか、自分で作る必要がありますか?java「比較できない」例外?
10
A
答えて
8
わかりません。
これを表現するための最も正確な例外は、おそらくIllegalArgumentException
です: http://docs.oracle.com/javase/7/docs/api/java/lang/IllegalArgumentException.html
あなたはおそらく間違ったクラスのインスタンスを提供するから発信者を防ぐことができますどのComparable<CustomClass>
を実装する必要があります。
2
ClassCastExceptionを考慮すると、Java Collection Frameworkがそのような状況でスローするものです。これは、我々は `匹敵
Exception in thread "main" java.lang.ClassCastException: Test1 cannot be cast to java.lang.Comparable
at java.util.TreeMap.compare(TreeMap.java:1188)
at java.util.TreeMap.put(TreeMap.java:531)
at java.util.TreeSet.add(TreeSet.java:255)
at java.util.AbstractCollection.addAll(AbstractCollection.java:334)
at java.util.TreeSet.addAll(TreeSet.java:312)
at java.util.TreeSet.<init>(TreeSet.java:160)
at Test1.main(Test1.java:9)
+0
ClassCastExceptionの+1。これは、compareTo javadoc:https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html#compareTo-T-で参照されています。しかし理想的には、上記のようにCory Kendallが述べているように、これを防ぐクラス階層を作り出すべきです。 – philo
関連する問題
- 1. 比較例外
- 2. 例外的なシナリオのCQRS - ドメイン例外とイベントの比較
- 3. Pythonでの例外オブジェクトの比較
- 4. XMLコードを比較するときにJavaコードで例外が発生する
- 5. WCF - エラー/例外とメッセージの比較
- 6. のJava - 比較
- 7. Java比較日
- 8. Javaでのポーカーハンドの比較
- 9. は、メソッドのスロー例外の比較:比較の方法は、その一般的な契約に違反し
- 10. Javaタイムスタンプの比較
- 11. Javaのシーケンス比較
- 12. Javaでスタックトレースのない例外
- 13. エラー処理と対象処理の例外処理の比較
- 14. プロシージャが停止しないときにJava例外によってJava例外が表示されない
- 15. java異なるオプションと比較する
- 16. Java dateFormat解析できない日付の例外
- 17. 例外:「制限されたAPIにアクセスできない」java
- 18. のJava Unicodeの比較
- 19. Java Booleanクラスの比較
- 20. Javaの二重比較
- 21. のJavaスタックの比較
- 22. Javaインターフェイスコンパレータのstatic比較
- 23. Java EnumerationとIteratorの比較
- 24. Javaの比較配列
- 25. Java文字列比較
- 26. ClickOnceとJava WebStartの比較
- 27. xmlオブジェクトの比較java
- 28. Java配列の比較
- 29. AndroidのJavaソートの比較
- 30. Java Async Httpクライアントの比較
1に非匹敵するのTest1を追加しようとすると何が起こるかです。 –