java 反射机制
来源:互联网 发布:扫描编辑软件 编辑:程序博客网 时间:2024/06/06 05:56
反射:通俗点讲就是在运行过程中根据对象找类
以下时反射常用到的一些方法做简单记录( 以person对象为例)
类路径实例化calss类:
public static Object getInstance(String calssName) {try {return Class.forName(calssName).newInstance();} catch (InstantiationException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IllegalAccessException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();}return null;}
获取所有方法
public static void getMethods() {Object obj = getInstance("com.reflect.Person");Class<? extends Object> cls = obj.getClass();try {Method[] methods = cls.getMethods();for (Method method : methods) {//方法的参数Class<?>[] parameterTypes = method.getParameterTypes();//方法名称String methodName = method.getName();//参数个数int parameterLength = parameterTypes.length;System.out.println(methodName+" : "+parameterLength);if(parameterTypes.length>0){//参数类型System.out.println(parameterTypes[0].toString());}//参数set方法赋值if(method.getName().startsWith("set")){method.invoke(obj, "1");}}} catch (IllegalAccessException | IllegalArgumentException| InvocationTargetException e) {e.printStackTrace();}}获取所有属性
public static void getFields() {try {Object obj = getInstance("com.reflect.Person");Class<? extends Object> cls = obj.getClass();Field[] fields = cls.getDeclaredFields();for (Field field : fields) {//设置属性可访问field.setAccessible(true);//属性名称System.out.println(field.getName());//属性类型System.out.println(field.getType());int modifier = field.getModifiers();//属性的访问权限System.out.println(Modifier.toString(modifier));//属性赋值field.set(obj, "1");}} catch (IllegalArgumentException e) {e.printStackTrace();} catch (IllegalAccessException e) {e.printStackTrace();}}
获取父类和接口:
public static void getExtendAndInterFaces(Class<? extends Object> cls) {//获取父类Class<?> superclass = cls.getSuperclass();System.out.println(superclass);//获取接口Class<?>[] interfaces = cls.getInterfaces();for (int j = 0; j < interfaces.length; j++) {System.out.println(interfaces[j]);}}
0 0
- 【反射】JAVA反射机制
- 【Java】JAVA反射机制
- Java 反射机制[Field反射]
- Java 反射机制[Method反射]
- Java反射机制笔记-反射机制
- java的反射机制
- Java的反射机制
- java反射机制详解!
- Java反射机制
- Java的反射机制
- java 反射机制--侯捷
- java反射机制
- java反射机制
- [候捷]Java反射机制
- java 反射机制
- java 反射机制初探
- 关于Java反射机制
- java反射机制
- 40 个很有用的 Mac OS X Shell 脚本和终端命令
- 调整数组顺序使奇数位于偶数前面
- 使用ffmpeg 将纯H264保存为mp4
- 欢迎使用CSDN-markdown编辑器
- 关于Ubuntu编译Qt失败问题
- java 反射机制
- C++中static详解
- hibernate持久化状态
- 正则表达式判断身份证,邮箱,手机号码,正整数
- poj 1930 (循环小数转化分数)
- 使用透明状态栏后,如果弹出了软键盘则会把title上面的内容顶出去
- wordpress通过配置memcached缓存降低mysql内存占用
- androidFragment间通信
- Oracle数据类型之number