Java的反射机制学习1

来源:互联网 发布:矩阵防御 app 编辑:程序博客网 时间:2024/06/08 06:24

Reflection(反射)是被视为动态语言的关键,反射机制允许程序在执行期借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性及方法.

下面以Person类为例子,对反射进行学习

public class Person {    private String name;    private int age;    public  Person(){    }    public Person(String name){        this.name=name;    }    public 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;    }   public void show(){        System.out.println("peorson show...name="+name);    }    public void display(String nation){        System.out.println("display... nation="+nation);    }    @Override    public String toString() {        return "Person{" +                "name='" + name + '\'' +                ", age=" + age +                '}';    }}

测试类:

public class Main {    @Test    public void test1() throws Exception {        //得到Person类的Class实例        Class<Person> clazz=Person.class;        //通过反射的方式 获取一个person对象        Person p=clazz.newInstance();        System.out.println(p);        //得到Person的属性name        Field f1=clazz.getDeclaredField("name");        //由于name的private修饰,设置成可以访问        f1.setAccessible(true);        //修改对象p的name属性为liu        f1.set(p,"liu");        System.out.println(p);        //获取对象show方法        Method m1=clazz.getMethod("show");        m1.invoke(p);        //获取对象dispaly方法,参数为String        Method m2=clazz.getMethod("display",String.class);        m2.invoke(p,"china");    }}

打印结果:
Person{name=’null’, age=0}
Person{name=’liu’, age=0}
peorson show…name=liu
display… nation=china

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 裸检的时候勃起怎么办 美术生联考没过怎么办 美术联考刚过线怎么办 要是艺考失败那怎么办 4s店把车漆划了怎么办 深户怎么办港澳个人游 qq发红包被骗了怎么办 脚上面长了个包怎么办 便池水不停的淌怎么办 车门磕掉一点漆怎么办 成考密码忘了怎么办 法国签证拒签了怎么办 申根签证拒签怎么办 驾驶证扣了12分怎么办 驾照一下扣12分怎么办 c1驾照分扣完了怎么办 驾照扣完12分后怎么办 驾照扣了60多分怎么办 驾照被扣了12分怎么办? c1驾照记满12分怎么办 不交钱不让验房怎么办 中考考号忘了怎么办 高考考生号忘了怎么办 1岁宝宝吞了硬币怎么办 小孩吞了5角硬币怎么办 10小孩吞了硬币怎么办 小孩吞了5毛硬币怎么办 小孩把硬币吞了怎么办 高三数学成绩差怎么办 没交社保的工龄怎么办 购置税证明丢了怎么办 车登记证书丢了怎么办 车辆登记书丢了怎么办 车贷分期还完了怎么办 住宅70年到期后怎么办 在外地扣了12分怎么办 英语6级证书丢了怎么办 孩子腺样体肥大鼻子堵塞怎么办 孩子初中成绩太差怎么办 交违章罚单丢了怎么办 违章缴费单丢了,怎么办