本帖最后由 陈泽鑫 于 2012-12-19 15:16 编辑
本来不想来求助的...来了就证明自己挺弱的{:soso_e136:}
但是我实在找不出问题原因,希望有人能指出.
import java.lang.reflect.Constructor;
public class reflect{
public static void main(String[] args) {
try {
//这种方法运行报错
// Constructor cons = Person.class.getConstructor(String.class, int.class);//获得类的构造器
//这种方法运行也报错
// Constructor cons = Class.forName("com.itheima.Person").getConstructor(String.class,int.class);
Person person = (Person)cons.newInstance("张三", 90);//通过通过构造器创建构造方法赋初始值
Person.class.getMethod("setName", String.class).invoke(person,"李四");//调用方法赋值
Person.class.getField("age").set(person, 22);//直接对属性赋值
System.out.println(person);
} catch (Exception e) {
e.printStackTrace();
}
}
}
class Person {
Person(String name,int age){
this.name = name;
this.age = age;
}
public String toString(){
return "姓名: "+name+"; 年龄: "+age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
private String name;
private int age;
}
|