这是我的代码
Class<?> clazz;
try {
clazz = Class.forName("classes.Pizza");
Object p2 = clazz.newInstance();
System.out.println(p2.test);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
错误是“测试无法解析或不是字段” 我想得到一个包含类名的字符串,并创建一个具有该类型的对象..类似
String x = "Pizza"
x pizza1 = new x();
我该怎么做?
答案 0 :(得分:2)
您必须将Object转换为Pizza对象:
这也可能导致ClassCastException:
<h1>Bienvenue</h1>
<h2>Je suis un texte en français</h2>
<p>Ceci est un exemple pour gérer les traductions sur un site web</p>
修改强>
当你不知道它时,你无法访问字段Class<?> clazz;
try {
clazz = Class.forName("classes.Pizza");
Object p2 = clazz.newInstance();
System.out.println(((Pizza)p2).test);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (ClassCastException e) {
e.printStackTrace();
}
。
所以你可以访问该字段:
test
仅受javadoc攻击,未经过测试(在这种情况下不确定异常)