В какой-то степени это вопрос вкуса. Для меня это хорошо, пока:
- Вы держите поле в финале, как вы сделали
- Вы убедитесь, что указанный объект является неизменным и поточно-ориентированным
Статика, как правило, затрудняет написание хороших тестов. Если вы когда-нибудь обнаружите, что хотите изменить статическое состояние, вам, возможно, придется снова взглянуть на дизайн.
Рассмотрим Google Guice и его очень приятную реализацию Singleton .
Конечно, если ваше приложение представляет собой эксперимент из одного класса, состоящий из 10 строк, это имеет гораздо меньшее значение.
Обратите внимание, что в вашем примере вы можете упростить до:
private static final ApiKey API_KEY = new ApiKey();
Это не всегда возможно, хотя. Возможно, вы пропустили более сложный код инициализации? В этом случае Guice снова стоит посмотреть.