反射机制(字段)

来源:互联网 发布:原生js实现的效果 编辑:程序博客网 时间:2024/06/05 02:32

例子:

 

package com.dp.java.Reflection;import java.util.Date;/** * 反射字段 * */public class Reflection_2 {public String name="你访问了!!";private int age=23;public static Date time;public int getAge() {return age;}}






---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------



package com.dp.java.Reflection;import java.lang.reflect.Field;import java.util.Date;import org.junit.Test;public class Reflection_2_test1 { /** * 反射字段的访问 */@Testpublic void test1() throws Exception{//访问公共string类型的成员变量// TODO Auto-generated method stubClass c=Reflection_2.class;Reflection_2 d=(Reflection_2) c.newInstance();Field f=c.getField("name");//此方法反映此 Class 对象所表示的类或接口的指定公共成员字段System.out.println(f.get(d));//更改name的值f.set(d, "修改成:Mr_Li13");System.out.println(d.name);}@Testpublic void test2() throws Exception{//访问私有int类型的成员变量// TODO Auto-generated method stubClass c=Reflection_2.class;Reflection_2 d=(Reflection_2) c.newInstance();Field f=c.getDeclaredField("age");//此方法反映此 Class 对象所表示的类或接口的指定公共成员字段f.setAccessible(true);//强暴访问私有System.out.println("访问了:"+f.get(d));f.set(d, 25);System.out.println("改成:"+d.getAge());}@Testpublic void test3() throws Exception{//访问公共string类型的成员变量// TODO Auto-generated method stubClass c=Reflection_2.class;//Reflection_2 d=(Reflection_2) c.newInstance();Field f=c.getField("time");//此方法反映此 Class 对象所表示的类或接口的指定公共成员字段f.set(null, new Date());System.out.println("时间为:"+Reflection_2.time);}public static void main(String[] args) throws Exception {Reflection_2_test1 dd=new Reflection_2_test1();dd.test1();dd.test2();dd.test3();}}

结果显示:

                       

0 0
原创粉丝点击