Używam Guawa Ordering
w celu posortowania listy podmiotów na podstawie porządku listy odpowiadającej danym podmiotom. W niektórych przypadkach występuje niezgodność między dwiema listami (identyfikator pochodzi z interfejsu GUI strony internetowej, a elementy z bazy danych), ponieważ wielu użytkowników może manipulować tą samą organizacją.Guava - dlaczego nie jest IncomparableValueException public?
W tych przypadkach Ordering
wyrzuca IncomparableValueException
. Chciałbym uchwycić ten wyjątek, aby przedstawić użytkownikowi informacyjny komunikat o błędzie. Ale nie jestem w stanie, ponieważ wyjątek jest pakietem lokalnym, a nie publicznym. To prowadzi do kodu obsługi wyjątków, który jest bardziej brudny niż powinien (muszę uchwycić wyjątek ClassCastException).
Dlaczego ten wyjątek nie jest ogólnie dostępny? Ponieważ jest on wyrzucany z ramy Guava
, spodziewałbym się, że będę w stanie go złapać.
Może również dodać, że w mojej oryginalnej wersji (13.0.2) wyjątek miał javadoc + TODO z napisem "make public and document", w najnowszej wersji (18.0), zarówno javadoc, jak i TODO zniknęły, wyjątek nadal jest pakietem lokalnym.
Pytam "ich", ponieważ ich strona główna kodu Google czyta: "Aby uzyskać pomoc dotyczącą konkretnego pytania lub problemu, opublikuj pytanie do Stack Overflow z tagiem" guava ". Monitorujemy te pytania, korzystając z tego kanału RSS. " – Tobb
https://github.com/google/guava/issues/new? Ale tak, prawdopodobnie otrzymasz odpowiedź od jednego z opiekunów Guava. –
Nie chcę tworzyć problemu, ponieważ jest to tylko kwestia, może być tak, że jest zrobione celowo z ważnego powodu. – Tobb