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);
}
}
静的ブロックは本当に、本当に読みにくいからです。誰かがこのケースを素敵でクリーンな方法で処理する方法について提案がありますか?