相关疑难解决方法(0)

如何处理抛出已检查异常的静态最终字段初始值设定项

我正面临一个用例,我想声明一个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);
    }  
}

因为静态块确实非常难以阅读.有没有人有一个关于如何以一个漂亮,干净的方式处理这种情况的建议?

java static final exception initializer

37
推荐指数
3
解决办法
2万
查看次数

在构造函数中初始化final变量

我正在尝试private final在我的类的构造函数中初始化一个变量.我发现这个线程解释了如何做(在构造函数中初始化一个静态的最终字段),但是eclipse似乎不喜欢我的代码.我想知道是否有人可以说明我可能做错了什么.

public class A {
  final private String myString;

  public A() {
    myString = "content";
  }
}
Run Code Online (Sandbox Code Playgroud)

使用此代码我得到:

空白的最终字段myString可能尚未初始化

这似乎与我链接的线程中的示例类似.

感谢您的帮助!

java constructor final

3
推荐指数
1
解决办法
983
查看次数

标签 统计

final ×2

java ×2

constructor ×1

exception ×1

initializer ×1

static ×1