我正面临一个用例,我想声明一个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);
}
}
因为静态块真的非常难以阅读。有没有人对如何以一种好的、干净的方式处理这个案子有什么建议?