java反射用法
来源:互联网 发布:java即时通信 编辑:程序博客网 时间:2024/06/11 03:49
1、获取Class三种方式:
(1)通过class字符串:
Class entityClass = Class.forName("com.loan.back.entity.Article");
(2)通过对象获取:
Class entityClass1=entityObject.getClass();
(3)通过实体类获取
Class entityClass1=实体类.class;
2、根据类获取属性
Field[] f = entityClass.getDeclaredFields();
3、获取属性类型
for (Field field : f) {
System.out.println(field.getType().getName());
}
4、创建对象
Object entityObject=entityClass.newInstance();
5、给属性赋值
field.setAccessible(true);field.set(entityObject, Long.parseLong("1"));
6、例子:通过className获取属性,与字典配置的属性以及对应到value进行匹配,赋值给对象,并返回
private Object getObjectFromClassName(String role, String code, String className)throws ClassNotFoundException, InstantiationException, IllegalAccessException {Class entityClass = Class.forName(className);Object entityObject = entityClass.newInstance();Dictionary dic = new Dictionary();dic.setCode(code);List<Dictionary> dicList = dictionaryService.find(dic);for (Dictionary dictionary : dicList) {String dicRole = dictionary.getName();if (dicRole.equals(role)) {String[] propList = dictionary.getDescription().split(",");String[] valueList = dictionary.getValue().split(",");if (propList.length == valueList.length) {Field[] f = entityClass.getDeclaredFields();for (Field field : f) {for (int i = 0; i < propList.length; i++) {if (field.getName().equals(propList[i])) {field.setAccessible(true);switch (field.getType().getName()) {case "java.lang.Long":field.set(entityObject, Long.parseLong(valueList[i]));break;case "java.lang.Integer":field.set(entityObject, Integer.parseInt(valueList[i]));break;case "java.lang.Boolean":if(valueList[i].equals("1")){field.set(entityObject, true);}else{field.set(entityObject, false);}break;default:field.set(entityObject, valueList[i]);break;}}}}}}}return entityObject;}
阅读全文
0 0
- java反射用法
- Java反射用法详解
- java反射用法简述
- JAVA反射-getGenericSuperclass()用法
- java反射的用法
- java反射用法
- java反射用法
- Java反射基础用法
- Java反射的用法
- Java反射机制的用法
- Java 反射之Class用法
- java中反射的用法
- Java反射的用法详解
- Java中反射的用法
- Java反射之Field用法
- Java反射之Field用法
- Java反射机制基本用法
- java反射技术详细用法
- 为什么opengl中,gl_Position是vec4类型的?不是应该是vec3吗,多出来的那个是什么呀
- spring boot1.5.6+jdk1.7测试类
- effective C++条款四十三解读
- ibatis数据源迁移(Oracle到MySQL)
- mysql中检查列名是否存在
- java反射用法
- 利用fastjson对json转map的操作
- termios 详解
- 在form中提交list
- 分享制作windows10官方u盘启动图文教程
- jietty跨域请求
- Android Studio 编译速度优化,aar引用优化
- 【Linux】使用ftp传输文件
- 微信支付V3的WXUtil文件