我有
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 的类如何,魔术表达式都是相同的,但与上面的示例相同。次优选择是达到相同效果的静态方法。
笔记:
- 如果可能的话,Java 6。
- 这个问题(不一定)与日志记录有关......