黑马程序员技术交流社区
标题:
反射的问题
[打印本页]
作者:
吴璞玉
时间:
2012-3-9 18:47
标题:
反射的问题
自定义一个类叫Student,通过反射取构造函数的时候发生异常,这是为什么呢
class ReflectTest
{
public static void main(String[] args) throws Exception
{
Constructor constructor=Class.forName("Student").getConstructor(String.class,int.class);
Student s=(Student)constructor.newInstance(new String("张三"),23);
}
}
class Student
{
private String name;
private int age;
Student(String name,int age)
{
this.name=name;
this.age=age;
}
}
作者:
杨毅
时间:
2012-3-9 18:50
Class.forName(),这里面要包名.类名吧
作者:
刘蕴学
时间:
2012-3-9 18:51
主类需要加public,并跟源文件名相同
作者:
H07000223
时间:
2012-3-9 19:05
本帖最后由 H07000223 于 2012-3-9 19:08 编辑
student的构造方法要用
public
修饰,有包的话,要写成
包名.类名
package java_Test;
import java.lang.reflect.Constructor;
public class Test_020
{
public static void main(String[] args) throws Exception
{
Constructor<?> constructor = Class.forName("java_Test.Student2")
.getConstructor(String.class, int.class);
Student2 s = (Student2) constructor.newInstance("张三", 23);
System.out.println(s.name+s.age);
}
}
class Student2
{
public String name;
public int age;
public Student2(String name, int age)
{
this.name = name;
this.age = age;
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2