关于java反射机制复习的那些事

来源:互联网 发布:域名注册商排名 编辑:程序博客网 时间:2024/06/06 02:27

实体类

package com.beijng.dasenlin.bean;/** * 写一个实体类, * @author Administrator * */public class User {    private int id;    private String name;    private int age;    /**     * 無產的構造方法     */    public User(){    }    /**     * 通過他們來獲取     * @param id     * @param name     * @param age     */    public User(int id, String name, int age) {        super();        this.id = id;        this.name = name;        this.age = age;    }    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    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;    }    }

反射机制测试类

package com.beijng.dasenlin.reflect;import java.lang.reflect.Constructor;import java.lang.reflect.Field;import javax.swing.SpringLayout.Constraints;import com.beijng.dasenlin.bean.User;/** *  * @author Administrator * */public class Demo {    public static void main(String[] args) {        String path="com.beijng.dasenlin.bean.User";        try {            Class<User> clazz = (Class<User>)Class.forName(path);            User u = clazz.newInstance();            System.out.println("获得的实例化对象"+u);            //Class clazz = path.getClass();            Constructor [] constructor=clazz.getDeclaredConstructors();            for(Constructor ct:constructor){                System.out.println("所有的构造器"+ct);            }            Constructor c1 = clazz.getConstructor();            System.out.println("获得的无参构造器"+c1);            Constructor<User>c2 = clazz.getDeclaredConstructor(int.class,String.class,int.class);            User u2=c2.newInstance(18,"xiaowan",9);            System.out.println(u2.getName());            System.out.println("获得构造器"+c2);            Field f=clazz.getDeclaredField("name");            f.setAccessible(true);//设置属性不需要访问了            f.set(u, "xiaoming");            System.out.println(f.get(u));        } catch (Exception e) {            e.printStackTrace();        }    }}
0 0
原创粉丝点击