Tworzę niestandardową klasę, która implementuje porównywalną i chciałbym rzucić jakiś wyjątek, jeśli ktoś spróbuje porównać dwa obiekty, które nie są porównywalne według mojej definicji. Czy istnieje już odpowiedni wyjątek w interfejsie API lub czy muszę tworzyć własne?Wyjątek "nieporównywalny" w języku Java?
Odpowiedz
Nie to, co wiem.
Najdokładniejszą Wyjątek do reprezentowania Jest to prawdopodobnie IllegalArgumentException
: http://docs.oracle.com/javase/7/docs/api/java/lang/IllegalArgumentException.html
Należy prawdopodobnie również wdrażanie Comparable<CustomClass>
które zapewnią dzwoniących z dostarczania wystąpienie niewłaściwej klasy.
Weźmy pod uwagę wyjątek ClassCastException, który Java Collection Framework rzuca w takich sytuacjach. To co się dzieje, gdy staramy się dodać nieporównywalnych Test1 do TreeSet
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)
+1 dla wyjątku ClassCastException. Jest to wymienione w compareTo javadoc: https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html#compareTo-T-. Ale najlepiej, jak mówi Cory Kendall powyżej, powinieneś spróbować wymyślić hierarchię klas, która temu zapobiega. – philo
- 1. Jak analizować negatywnie w języku Java w języku Java
- 2. Wyjątek protokołowania w języku Python
- 3. Odrzucony wyjątek wyjątku w wątkach Java
- 4. Klon() w języku Java
- 5. Jak propagować wyjątek w java
- 6. Jak obejść wyjątek OutOfMemory w języku C#?
- 7. Wyjątek parse Java LocalTime
- 8. Java zidentyfikować wyjątek właśnie
- 9. Java - wyjątek JSON Null
- 10. Obsługa błędów wielowątkowości w języku Java
- 11. Wyjątek Java Malformed URL
- 12. Metoda ArrayList.toArray() w języku Java
- 13. Aplikacja tekstowa w języku Java
- 14. Biblioteka tłumaczeń w języku Java
- 15. Jak animacja w języku Java?
- 16. Kategoryzacja rekordów w języku Java
- 17. Przesuwanie kursora w języku Java
- 18. Klasa DataSet w języku Java?
- 19. Lista tablic w języku Java
- 20. Lista sortowania w języku Java
- 21. Minimalna data w języku Java
- 22. Transmisja UDP w języku Java
- 23. Odpowiednik debugowania w języku Java?
- 24. nazwa odpowiednika w języku Java
- 25. Klasa monitora w języku Java
- 26. Ciecz w języku Java/Scala
- 27. Wyjątek wyjątku języka Java Wyjątek w porównaniu z wyjątkiem IOException
- 28. W języku Java, w jaki sposób ustawić typ zwracany, jeśli wystąpi wyjątek?
- 29. Dekompresuj odpowiedź GZIPed HTTP w języku Java
- 30. Wyjątek arytmetyczny wyrzucony w Javie
+1 dla '' Porównywalna interfejsu. –