【发布时间】:2012-12-31 23:49:37
【问题描述】:
我有
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。
- 这个问题(不一定)与日志记录有关...
【问题讨论】:
-
A类和B类有某种形式的关系吗? -
@BuhakeSindi:没有。编辑以使这一点更清楚。
-
你可以使用getClass()方法。
-
@RohitKumar.. 不,它是静态引用变量。
-
是关于静态日志变量的吗?
标签: java class inheritance reflection static