私は持っています
public class A {
static X s_x = new X(A.class);
}
と
public class B {
static X s_x = new X(B.class);
}
特別な関係や共通性のない多くのクラスについても同様です。私が本当にやりたいのは、s_xをスーパークラスで初期化することですが、子孫クラス固有のコードを使用します。静的コードはオーバーライドできないため、これは不可能です。ですから、少なくともコピー&ペーストを簡単にしたいのです。Classオブジェクトに評価される魔法の式が必要です。つまり、次のように記述します。
static X s_x = new X(/* magic expression here */);
ここで、魔法の式は、Xを宣言するクラスに関係なく同じですが、上記の例と同じです。次善のオプションは、同じ効果をもたらす静的メソッドです。
ノート:
- 可能であればJava6。
- この質問は(必然的に)ロギングに関するものではありません...