Java的反射可以取得一个类的所有信息,包括里面的属性、方法以及构造函数等,甚至可以取得其父类或父类接口里面的内容。以下是关于反射的知识框架
反射的使用方法:
- System.out.println("-----------------属性-----------------------");
- // 1.得到你的类的对象
- Class c = Class.forName("com.zking.entity.Person");
- Field f = c.getDeclaredField("pname");
- // 设置私有的属性能够被访问
- f.setAccessible(true);
- System.out.println(f);
- // 得到一个person对象 newInstance 产生一个新的实列 实列化对象
- Object person = c.newInstance();
- // 赋值
- f.set(person, "东东");
- // 取值
- f.get(person);
- System.out.println(f.get(person));
- //获取所有属性
- Class c = Class.forName("com.zking.entity.Person");
- Field[] fields = c.getDeclaredFields();
- Object person = null;
- for (Field f : fields) {
- f.setAccessible(true);
- person = c.newInstance();
- if ("pid".contains(f.getName())) {
- f.set(person, "M01");
- } else if ("pname".contains(f.getName())) {
- f.set(person, "张三");
- } else if ("sex".contains(f.getName())) {
- f.set(person, 18);
- }
- System.out.println(f.get(person));
- }