Если вы уверены, что хотите установить URL-адрес. Уверены ли вы? java.net.URL
- это один из самых всеобъемлющих классов в JDK. Что касается использования в качестве «константы», то здесь задействован DNS-поиск, и он использует изменяемый статический объект (хотя и защищенный проверкой безопасности, если у вас установлен SecurityManager
).
Если он один, статический инициализатор должен быть в порядке.
private static final java.net.URL STATIC_URL;
static {
try {
STATIC_URL = new java.net.URL("http://example.com/");
} catch (java.net.MalformedException exc) {
throw new Error(exc);
}
}
(Обратите внимание, вы не можете квалифицировать имя статического поля именем класса.)
Примечание: Вы действительно не хотите null
- выдать какую-то ошибку и прекратить загрузку класса. Я установил константу private
, так как это действительно не та зависимость, от которой вы хотите зависеть.
Если у вас есть лоты, тогда уместен метод для общего кода и назначения на месте определения.
private static final java.net.URL STATIC_URL = constantURL("http://example.com/");
private static URL constantURL(String str) {
try {
return new java.net.URL("http://example.com/");
} catch (java.net.MalformedException exc) {
throw new Error(exc);
}
}
Опять нет нуля!