Jak obsługiwać statyczny końcowy inicjator pola, który zgłasza sprawdzony wyjątek
Stoję przed przypadkiem użycia, w którym chciałbym zadeklarować astatic final
pole z instrukcją inicjalizatora, która jest zadeklarowana do rzucenia sprawdzonego wyjątku. Zazwyczaj wyglądałoby to tak:
public static final ObjectName OBJECT_NAME = new ObjectName("foo:type=bar");
Mam tutaj problem, żeObjectName
konstruktor może rzucać różne sprawdzone wyjątki, na których mi nie zależy (ponieważ wiedziałbym, że moje imię jest poprawne i jest w porządku, jeśli nieszczęśliwie się zawiesza, jeśli nie jest). Kompilator Java nie pozwoli mi tego zignorować (ponieważ jest to sprawdzony wyjątek) i wolałbym nie uciekać się do:
public static final ObjectName OBJECT_NAME; static{ try{ OBJECT_NAME = new ObjectName("foo:type=bar"); }catch(final Exception ex){ throw new RuntimeException("Failed to create ObjectName instance in static block.",ex); } }
Ponieważ statyczne bloki są naprawdę, bardzo trudne do odczytania. Czy ktoś ma sugestię, jak poradzić sobie z tą sprawą w miły, czysty sposób?