你的test2被打包了,Object obj=Class.forName("Test2").newInstance();应该加上包名吧。
System.out.println(obj.a);
obj是一个Object类的引用,Object中式没有.a的成员数据的,换句话,使用中虽然有a,但a对父类object来说是不可见的。所以你需要强制类型转化。可是这里你也 不能这样写。
Class.forName("Test2").newInstance();返回的是字节码,如果你硬要当成object来使用,那是可以的。但最好换成
类名 obj=Class.forName("类名").newInstance();
这样应该就可以了。
我觉得强制类型转化应该放在这个对象的时候 类名 obj =Class.forName 。 |