java 反射机制学习(一)
今天早上、在群里闲聊。群友A说道叫群友B拉几个妹纸进群来聊天。
B说道:"凡是我认识的妹子,我都会标注为private,怎么可能有public的"。
A说道:"你妹,伙计们,用反射获取他的private属性"。
于是闲的蛋疼的我就去写代码去了、在写代码的过程中、我的疑惑渐渐的多了起来。好多以前学习过的内容都忘记了、于是乎Google百度什么的开始忙了起来。
Java的反射机制、能够在java运行时根据类的路径去获取与路径对应的Class对象。在根据这个类对象去获取类的成员变量、方法、构造这些东西、哪怕他们是私有的。获取到这些东西来做什么?你可以用他们来判断、也可以调用他们去完成某些功能。Class:类
既然一切的前提就是要获取到Class对象。那么就得看看java.lang.Class这个类。继续Google了一下、发现有前辈写了一篇文章:
http://blog.csdn.net/hzw2312/article/details/8637199
文章很OK、我这里借用一下、就在不多加描述了。
Field:类的成员变量
Field类、提供有关类或接口的单个字段的信息,以及对它的动态访问权限。可以通过Class的四个静态方法来获得Field对象跟数组:
第一个getField方法返回一个Field 对象,该对象反映此 Class 对象所表示的类或接口的指定已声明的public字段(包含继承字段)。
第二个方法getDeclaredField返回一个 Field 对象,该对象反映此 Class 对象所表示的类或接口的指定已声明字段(不包含继承字段)。name 参数是一个 String,它指定所需字段的简称。
/** * 用户类 * @author 胡汉三 * */public class test_user extends Test{private int id ; //用户编号(自增)private String name; //用户名private String pass; //密码private int type; //类型public String s="";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;}private String getPass() {return pass;}public void setPass(String pass) {this.pass = pass;}public int getType() {return type;}public void setType(int type) {this.type = type;}}下一篇继续学习反射的实际应用、比如利用反射构建JDBC、利用反射构建JSON格式数据等!
欢迎QQ群交流:138986722