我有
public class A {
static X s_x = new X(A.class);
}
和
public class B {
static X s_x = new X(B.class);
}
等等,对于没有任何特殊关系或共性的许多类。我真正希望我能做的是在父类(super class)中初始化 s_x,但使用特定于后代类的代码;这是不可能的,因为静态代码不可覆盖。所以,我想至少让我的复制粘贴更容易。我想要一个计算为 Class 对象的魔术表达式,即写:
static X s_x = new X(/* magic expression here */);
无论我在哪个类中声明 X,魔术表达式都是相同的,但与上面的示例相同。次优选择是具有相同效果的静态方法。
注意事项:
- Java 6(如果可能)。
- 这个问题不是(必然)关于日志...
最佳答案
我也有一次这个奇怪的要求,我尝试搜索但没有找到任何东西,所以我猜答案是不可能的。
但我被告知要重新考虑我的方法,当我尝试时,我想出了没有这个奇怪要求的相同解决方案。所以请重新考虑你的方法。我相信你能像我一样解决它。另外,如果您可以发布您要解决的问题/场景,也许我可以提供帮助。
关于java - 如何在不使用类名的情况下在静态方法中获取 Class 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14379092/