本帖最后由 刘焕新 于 2013-3-31 18:47 编辑
- import java.lang.reflect.Constructor;
- //定义一个标准的JavaBean,名叫Person,包含属性name、age。
- class Person
- {
- private String name;
- private int age;
-
- Person(){}
-
- Person(String name, int age) {
- this.name = name;
- this.age = 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;
- }
-
- @Override
- public String toString() {
- return "name=" + name + ", age=" + age;
- }
- }
- //使用反射的方式创建一个实例、调用构造函数初始化name、age:
- public class ReflectDemo {
- public static void main(String[] args) throws Exception {
- //获取Person的Class对象
- Class clazz = Person.class;
- //Class clazz = Class.forName("Person");
-
- //使用Person的Class对象创建一个实例,默认是调用无参的构造函数
- Person p1 = (Person)clazz.newInstance();
- System.out.println(p1);
-
- //使用Person的Class对象创建一个指定参数类型列表的Constructor对象
- Constructor<Person> cons = clazz.getDeclaredConstructor(String.class, int.class);
- //使用Constructor对象,创建Person实例
- Person p2 = cons.newInstance("张三", 30);
- System.out.println(p2);
- }
- }
复制代码 |