Как обработать статический финальный инициализатор поля, который выдает проверенное исключение
Я сталкиваюсь с вариантом использования, где я хотел бы объявитьstatic final
поле с оператором инициализатора, который объявлен для создания проверенного исключения. Как правило, этобуду выглядеть так:
public static final ObjectName OBJECT_NAME = new ObjectName("foo:type=bar");
У меня есть проблема в том, чтоObjectName
конструктор может выдавать различные проверенные исключения, которые я нене волнует (потому что яЯ знаю, что мое имя действительно, и этовсе в порядке, если он с треском падает, если этонет). Java компилятор победилне позволяйте мне просто игнорировать это (как этоэто проверенное исключение), и я бы предпочел не прибегать к:
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); } }
Потому что статические блоки действительно очень трудно читать. У кого-нибудь есть предложения о том, как обращаться с этим делом хорошим, чистым способом?