反射与字段

来源:互联网 发布:网络测试与故障诊断 编辑:程序博客网 时间:2024/05/16 08:46
package dau02two;

import java.io.InputStream;
import java.util.List;

public class Person {
 
 private int age = 55;
 public String name = "hyl";
 public static int password = 13213;
 
}

public class Reflect2 {

 public static void main(String[] args) throws Exception {
  Person p = new Person(); 
  //1public String name = "hyl";
  Class c0 = Class.forName("/day03/src/dau02two/Person");
  Field f = c0.getField("name");//得到内容
  String s =(String)f.get(p);
  System.out.println(s);//person是实例化的时候打印的
  Class type = f.getType();//得到字段的属性
  f.set(p, "321");//通过反射来重新设置字段
  //从侧面说明了反射技术可以获得类的一切细节
  
  //2private int age = 55
  Class c1 = Class.forName("/day03/src/dau02two/Person");
  Field f1 = c1.getDeclaredField("age");
  f1.setAccessible(true);
  int a = (int)f1.get(p);//得到值
  System.out.println(a);
  
  //
  Class c2 = Class.forName("/day03/src/dau02two/Person");
  Field f2 = c2.getDeclaredField("password");
  int h = (int)f2.get(p);
  System.out.println(h);
  
  
  
  
  
 }

}

0 0
原创粉丝点击