我正面临一个用例,我想声明一个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);
}
}
因为静态块确实非常难以阅读.有没有人有一个关于如何以一个漂亮,干净的方式处理这种情况的建议?
我正在尝试private final在我的类的构造函数中初始化一个变量.我发现这个线程解释了如何做(在构造函数中初始化一个静态的最终字段),但是eclipse似乎不喜欢我的代码.我想知道是否有人可以说明我可能做错了什么.
public class A {
final private String myString;
public A() {
myString = "content";
}
}
Run Code Online (Sandbox Code Playgroud)
使用此代码我得到:
空白的最终字段myString可能尚未初始化
这似乎与我链接的线程中的示例类似.
感谢您的帮助!