Próbuję znaleźć sposób wymuszenia na Javie załadowania/zainicjowania typu wyliczeniowego (który jest zagnieżdżony w klasie zawierającej statyczną mapę).Wymuszenie inicjowania wyliczonego typu w Javie
Jest to dla mnie ważne, ponieważ wyliczony typ ma konstruktor, który zapełnia wspomnianą mapę, i bez wyraźnego sposobu inicjowania tego wyliczenia, mapa pozostanie pusta. Próbowałem użyć Class.forName
, ale to nie działa.
Przypuszczam, że mógłbym stworzyć instancję enum (i przechowywać ją w innej kolekcji lub innym elemencie), ale chciałbym wiedzieć, czy jest to elegancki sposób na zrobienie tego.
Jeśli nie gwarantuje enum zostanie zbudowana przed musisz korzystać z mapy, warto rozważyć swój projekt tutaj, choć rekomendacja Matta z użyciem statycznego inicjatora będzie prawdopodobnie uzyskać co chcesz. – Bryan
'Class.forName' inicjalizuje klasę. Jeśli "nie działa", kod ma inne problemy, których nie zdajesz sobie z tego sprawy. Dlaczego nie zamieścić swojego kodu. – irreputable
Zasadniczo widzę wyjątek stwierdzający, że klasa jest "nieważna" i wiem na pewno, że mam poprawną ścieżkę pakietu. czy Class.forName() * przypuszczalnie * działa we wszystkich przypadkach na wyliczeniach? –