私は同等クラスを実装するカスタムクラスを作成しています。私の定義では比較できない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. 例外翻訳とJavaでの例外チェーンの比較
- 3. 例外的なシナリオのCQRS - ドメイン例外とイベントの比較
- 4. Pythonでの例外オブジェクトの比較
- 5. XMLコードを比較するときにJavaコードで例外が発生する
- 6. WCF - エラー/例外とメッセージの比較
- 7. MYSQL日付比較の問題例外
- 8. Pythonの例外ベースクラスと特定の例外の比較
- 9. java 8 Nashornエンジンが日付を比較できない
- 10. Linqの比較例
- 11. のJava - 比較
- 12. Java比較日
- 13. 単純な例での呼び出し、適用、バインドの比較簡単な例での比較
- 14. JSON比較例外:JavaでgetJSONArrayにアクセスすることはできません、私が使用し
- 15. Javaでのポーカーハンドの比較
- 16. Javaタイムスタンプの比較
- 17. Javaのシーケンス比較
- 18. Javaのロング比較
- 19. Tensorflow-Javaイメージ比較
- 20. は、メソッドのスロー例外の比較:比較の方法は、その一般的な契約に違反し
- 21. Javaでスタックトレースのない例外
- 22. プロシージャが停止しないときにJava例外によってJava例外が表示されない
- 23. もしPythonのチェーンと例外との比較
- 24. エラー処理と対象処理の例外処理の比較
- 25. アサーションとライブラリAPIの型チェックの例外との比較
- 26. 変数の値と例外ロジックを比較します
- 27. Guidを比較すると例外が発生する
- 28. Vb.Net例外のフィルタリングCommunicationExceptionとServiceModel.FaultExceptionの比較
- 29. Javaで2つのテーブルを比較する(データベースではない)
- 30. java異なるオプションと比較する
1に非匹敵するのTest1を追加しようとすると何が起こるかです。 –