我想在Java中初始化一个静态的Class变量:
public class NumberExpression {
private static Class numberClass = Class.forName("java.lang.Number");
};
上述代码段无效,因为Class.forName
会引发ClassNotFoundException
。像new Integer().getClass()
这样的东西不起作用,因为Number
是一个抽象类。
我想我可以将Class.forName
包裹在处理ClassNotFoundException
的静态方法周围,但是有更优雅/标准的方式来获取我想要的东西吗?
编辑:
(类“Number”更改为“java.lang.Number”)
答案 0 :(得分:5)
它不起作用,因为类Number
不存在。你的意思是java.lang.Number
。
您可以尝试以下方式:
public class NumberExpression {
private static Class numberClass;
static {
try {
numberClass = Class.forName("java.lang.Number");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
};
但是,当您尝试加载的类是动态的时,这才有意义,否则您可以使用自己的类(即Number.class
)
答案 1 :(得分:4)
你为什么不这样做:
private Class numberClass = Number.class;