Java 反射 getDeclareFields getModifiers setAccessible(true)
示例代码:
public static Map<String, Object> dtoToMap(Object obj, String pre,
String las) {
Map result = new HashMap();
Class clazz = obj.getClass();
Field[] fs = clazz.getDeclaredFields();
for (int i = 0; i < fs.length; i += 1) {
if (Modifier.isStatic(fs[i].getModifiers())) {
continue;
}
fs[i].setAccessible(true);
try {
Object value = fs[i].get(obj);
if (value != null) {
result.put(pre + fs[i].getName() + las, value);
}
} catch (Exception e) {
e.printStackTrace();
}
}
return result;
}
方法解释:
通过反射获取obj的属性并对其拼接前缀和后缀
getClass:获取obj对象
getDeclaredFields()
返回 Field 对象的一个数组,这些对象反映此 Class
对象所表示的类或接口所声明的所有字段。获得某个类的所有申明的字段,即包括public、private和proteced,但是不包括父类的申明字段。
getDeclaredField()
getFields()
得某个类的所有的公共(public)的字段,包括父类。
getConstructors()和getDeclaredConstructors(),getMethods()和getDeclaredMethods()。
类似上面所讲。
public Method getDeclaredMethod(String name, Class<?>... parameterTypes)
name - 方法名
parameterTypes- 参数数组
Modifier.isStatic(fs[i].getModifiers())
判断获取的Class属性是否是静态 修饰符
类似的还有public、private、protected
continue
跳出continue所属代码块,继续执行下面的代码
break
不继续执行break之后的代码块,跳到和break所在代码块相关的外层代码块开始执行。
fs[i].setAccessible(true);
true或false决定是否可以访问获取的数组里面的属性值
fs[i].getName()
获取数组中得到的属性的名字
Java 反射 getDeclareFields getModifiers setAccessible(true)的更多相关文章
- Java反射和动态代理
Java反射 反射机制 RTTI 编译器在编译时打开和检查*.class文件 反射机制 运行时打开和检查*.class文件 Java反射常见的方法 java反射的应用 setAccessible(bo ...
- Java反射机制(带应用)
1.Java的反射机制: Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态 ...
- 提高java反射速度的方法method.setAccessible(true)
转载:http://huoyanyanyi10.iteye.com/blog/1317614 提高java反射速度的方法method.setAccessible(true) package com.c ...
- 【java】java反射机制,动态获取对象的属性和对应的参数值,并属性按照字典序排序,Field.setAccessible()方法的说明【可用于微信支付 签名生成】
方法1:通过get()方法获取属性值 package com.sxd.test.controller; public class FirstCa{ private Integer num; priva ...
- Java 反射 调用私有域和方法(setAccessible)
Java 反射 调用私有域和方法(setAccessible) @author ixenos AccessibleObject类 Method.Field和Constructor类共同继承了Acces ...
- java反射修改静态方法的值setAccessible
这几天闲来无事.在网上看了一个题目,相信大家都知道这个题目 static void change(String str){ str="welcome"; ...
- Java 反射 分析类和对象
Java 反射 分析类和对象 @author ixenos 摘要:优化程序启动策略.在运行时使用反射分析类的结构和对象 优化程序启动策略 在启动时,包含main方法的类被加载.它会加载所有它需要的类. ...
- 初探Java反射机制
反射库提供了一个非常丰富且精心设计的工具集,以便编写能够动态操纵java代码的程序库.这项功能被大量地应用于JavaBeans中.反射机制提供了在运行状态中获得和调用修改任何一个类的属性和方法的能力. ...
- 第28章 java反射机制
java反射机制 1.类加载机制 1.1.jvm和类 运行Java程序:java 带有main方法的类名 之后java会启动jvm,并加载字节码(字节码就是一个类在内存空间的状态) 当调用java命令 ...
随机推荐
- LPTHW 笨办法学python 40章 类
今天读了LPTHW的第40章以后豁然开朗,原来一直愚钝,不太理解类的定义和使用,还有就是不太理解关于self的定义. class MyStuff(object): def __init__(self) ...
- Angular--$http服务
关于Angular中$http 服务是对XMLHttpRequest 对象的封装,向服务器发送请求: 下面自己在angular中$http学习的一个记录, GET请求(先贴码) angualr代码: ...
- Please allow Subclipse team to receive anonymous usage statistics for this Eclipse intance(info)
本文转载自:http://blog.csdn.net/myfxx/article/details/21096949 今天在用eclipse启动项目的时候发现了一个问题,就是每次启动项目的时候,ecli ...
- SSH(Struts,Spring,Hibernate)和SSM(SpringMVC,Spring,MyBatis)之间区别
http://m.blog.csdn.net/article/details?id=52795914#0-qzone-1-52202-d020d2d2a4e8d1a374a433f596ad1440
- Pattern Recognition And Machine Learning (模式识别与机器学习) 笔记 (1)
By Yunduan Cui 这是我自己的PRML学习笔记,目前持续更新中. 第二章 Probability Distributions 概率分布 本章介绍了书中要用到的概率分布模型,是之后章节的基础 ...
- ODOO-10.0 错误 Could not execute command 'lessc'
2017-01-05 20:24:12,473 4652 INFO None odoo.service.db: Create database `hello`. 2017-01-05 20:24:16 ...
- wordpress(三)wordpress手动更新
第一:备份数据库还有文件 第二:从WP中文官网下载最新版WordPress,下载完毕解压到你电脑上. 第三:删除博客主机上的wp-includes和wp-admin目录. 第四:将解压在本地电脑的wo ...
- yum常用命令
Yum list kmod-coretemp[查找kmod-coretemp模块状态] Yum clean all[清空yum缓存] Yum remove kmod-coretemp [卸载kmod- ...
- Cocos2d-x 3.x 错误 cocos2dxDownloader 编译报错
因为自带的库不是自己写的代码,所以报错的当时就傻了 报错文件为Cocos2dxDownloader.java 错误铺满全屏,仔细查看发现是类的调用有问题,翻到最上边发现是有几个(很多个)类没有定义,我 ...
- 2016HUAS_ACM暑假集训3G - 还是畅通工程
最小生成树,题目简单.套的Prim模板,其他的题目比较有意义. Sample Input 3 //村庄个数1 2 1 ...