运用java反射机制还原类的属性,方法,修饰符
来源:互联网 发布:数据采集软件火车头 编辑:程序博客网 时间:2024/06/07 18:10
运用java反射机制还原类的属性,方法,修饰符
运用java反射机制将类的所有所属性,方法还原,不玩虚的咱直接干代码。
工具类GetClassUtil
package com.zlf.info;import java.lang.reflect.Field;import java.lang.reflect.Method;import java.util.HashMap;import java.util.Map;import com.sun.org.apache.bcel.internal.generic.NEW;/** * 创建时间:2016-10-26 上午9:13:11 项目名称:ReflectDemo * * @author zhoulongfei * @version 1.0 * @since JDK 1.6.0_21 文件名称:GetClassUtil.java 类说明: 通过java反射机制获取类的方法,属性,构造方法等等。。。 */public class GetClassUtil { private static Map<Integer, String> typeMap = new HashMap<Integer, String>() { // 静态构造方法 { put(0, " "); put(1, "PUBLIC"); put(2, "PRIVATE"); put(4, "PROTECTED"); put(8, "STATIC"); put(16, "FINAL"); put(32, "SYNCHRONIZED"); put(64, "VOLATILE"); put(128, "TRANSIENT"); put(256, "NATIVE"); put(512, "INTERFACE"); put(1024, "ABSTRACT"); put(2048, "STRICT"); } }; /** * 获得类的方法 * * @param o */ public static void getClassMethod(Object o) { Class c = o.getClass(); // 获得类名 System.out.println(c.getSimpleName() + " 类下的所有方法如下:"); // getDeclaredMethods获取该类中所有自己声明的方法名 Method[] methods = c.getDeclaredMethods(); for (Method method : methods) { // 获取方法的访问修饰符 ,typeMap.get(modifier).toLowerCase()取静态对应值并转化为小写输出 int modifier = method.getModifiers(); // 获得返回值类型 Class returntype = method.getReturnType(); System.out.print(typeMap.get(modifier).toLowerCase() + " " + returntype.getSimpleName() + " "); // 获得方法名 System.out.print(method.getName() + "("); Class[] classes = method.getParameterTypes(); Class c1 = null; for (int i = 0; i < classes.length; i++) { c1 = classes[i]; if (i < classes.length - 1) { System.out.print(c1.getSimpleName() + ","); } else { System.out.print(c1.getSimpleName()); } } System.out.println(")"); // for (Class class1 : classes) { // // System.out.print(class1.getSimpleName() + ","); // } // System.out.println(")"); } } /** * 获得类的属性 * * @param o */ public static void getClassField(Object o) { // 获得类对象类型 Class c = o.getClass(); System.out.println(c.getSimpleName() + " 类下的所有属性如下:"); // 获得方法数组 Field[] fields = c.getDeclaredFields(); // 遍历数组 for (Field field : fields) { // 获得int修饰符 int modifier_int = field.getModifiers(); // System.out.print(modifier_int); // 转化string修饰符 String modifier = typeMap.get(modifier_int).toLowerCase(); // 获取属性名称 String fieldName = field.getName(); // 获得属性的类型 Class type = field.getType(); System.out.println(modifier + " " + type.getSimpleName() + " " + fieldName); } }}
测试类 ReflectTest
package com.zlf.info;/** * 创建时间:2016-10-26 上午9:42:16 项目名称:ReflectDemo * * @author zhoulongfei * @version 1.0 * @since JDK 1.6.0_21 文件名称:ReflectTest.java 类说明: */public class ReflectTest { public static void main(String[] args) { Person p = new Person(); // 获取所有属性 GetClassUtil.getClassField(p); // 获取所有方法 System.out.println("--------------------------------"); GetClassUtil.getClassMethod(p); }}class Person { private String name; private int age; private String sex; private String address; private String hobbies; public Person() { } public Person(String name, int age, String sex, String address,String hobbies) { super(); this.name = name; this.age = age; this.sex = sex; this.address = address; this.hobbies = hobbies; } 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 String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public String getHobbies() { return hobbies; } public void setHobbies(String hobbies) { this.hobbies = hobbies; } private void printInfo(String str, int i, int j) { } protected void Info(String str, int i, int j) { }}
程序运行结果
结语:具体代码就不再一 一解释,代码备注上已经说明清楚,如程序中有错误欢迎指正,本博客后续将继续更新。
0 0
- 运用java反射机制还原类的属性,方法,修饰符
- 关于通过java反射机制,获取类属性的类型修饰符
- java反射机制的运用
- java反射机制的运用
- java通过反射机制取类的属性和方法
- java 通过反射机制得到类的属性和方法
- Java反射机制获取/调用类的属性和方法
- [JAVA]运用反射机制,抛出的异常的捕获方法
- java反射机制,获取类,属性,方法
- Java学习笔记-修饰符可修饰的属性方法
- Java 反射机制运用实例(动态调用类的方法)
- Java反射机制的运用-Json解析
- java的反射机制--关于类中属性的反射。
- 反射机制的运用
- 反射机制的运用
- 类、属性、方法、接口 的 修饰符、访问修饰符
- java中的反射机制对属性和方法的操作
- 通过java反射机制操作对象的属性方法
- 毕业的第一年
- RoundProgressBar(圆形进度条)
- iOS Block的简单使用
- 各种图示的介绍及绘制(boxplot、stem)
- jersey Spring 配置
- 运用java反射机制还原类的属性,方法,修饰符
- 净空法师:不怕念起,只怕觉迟
- Revit开发获取房间内的构件
- maya programming resources
- iOS - 不同控制器导航栏颜色不同
- 深入理解二分查找(二、二分答案)
- public static Map<String,List<BusFlight>> device_busFlight = new HashMap<String,List<BusFlight>>();
- 1011. A+B和C (15)
- Problem 6 Sum square difference (数学)