Minha pergunta é simples. Estou tentando fazer um conjunto de java.net.URL
s que são public static final
, de modo que qualquer classe possa acessá-los de qualquer contexto, já que essas URLs não mudarão durante o tempo de execução. No entanto, quando tento criá-los, recebo um erro do compilador dizendo que devo capturar ou declarar lançado um java.net.MalformedURLException
, mas isso é impossível fora de um método. Existe alguma maneira de contornar esse construtor que lança um não- java.lang
Throwable?
Alguns códigos fictícios abaixo para visualizar meu problema:
public class Main
{
public static final java.net.URL STATIC_URL = new java.net.URL("http://example.com/");
public static void main(String[] args)
{
GUI gui = new GUI();
gui.setVisible(true);
}
}
public class GUI extends java.awt.Window
{
public GUI()
{
add(new java.awt.Label(Main.STATIC_URL.toString()));
}
}
Se você tentar compilar isso, ele dirá que não pode por causa da linha 3. Daí minha pergunta.
Uma "alternativa" que eu prefiro ao método @HosamAly:
private static final java.net.URL STATIC_URL = makeUrl("http://www.example.com");
public static java.net.URL makeUrl(String urlString) {
try {
return new java.net.URL(urlString);
} catch (java.net.MalformedURLException e) {
return null; //Or rethrow an unchecked exception
}
}
Este artigo é coletado da Internet.
Se houver alguma infração, entre em [email protected] Delete.
deixe-me dizer algumas palavras