Java 反射工具类封装
封装了常用的反射相关方法
public class ReflectUtil {
/**
* 通过类路径获取Class
*
* @author LHY <br>
* Description <br>
* LastModified 2014-5-9 Content <br>
*/
public static Class<?> getClass(String packagePath) throws ClassNotFoundException {
return Class.forName(packagePath);
}
/**
* 获取的Activity的Class
*
* @author LHY <br>
* Description packageRoot:模块跟路径<br>
* activityPath:Activity完整路径或 模块下Activity路径 LastModified 2014-5-9
* Content <br>
*/
public static Class<?> getModelClass(String packageRoot, String activityPath) throws ClassNotFoundException {
if (activityPath.indexOf(".") == 0) {
activityPath = packageRoot + activityPath;
}
return getClass(activityPath);
}
/**
*
* @author LHY <br>
* Description 模拟get方法<br>
* LastModified 2013-12-9 Content <br>
* *@param obj 操作的对象<br>
* *@param att 操作的属性<br>
* @param <T>
*/
public static <T> T getter(Object obj, String att) {
T t = null;
Field field;
try {
field = obj.getClass().getDeclaredField(att);
field.setAccessible(true);
t = (T) field.get(obj);
} catch (NoSuchFieldException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
return t;
}
/**
*
* @author LHY <br>
* Description 通过属性名,添加属性<br>
* LastModified 2014-2-13 Content <br>
*/
public static void setter(Object root, String name, Object value) {
Field field;
try {
field = root.getClass().getDeclaredField(name);
field.setAccessible(true);
field.set(root, value);
} catch (NoSuchFieldException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
/**
*
* @author LHY <br>
* Description 获取实体属性名称列表<br>
* LastModified 2013-12-9 Content <br>
*/
public static List<String> getFieldList(Object object) {
List<String> fieldHashList = new ArrayList<String>();
Class<?> cls = object.getClass();
Field[] fieldlist = cls.getDeclaredFields();
for (int i = 0; i < fieldlist.length; i++) {
Field fld = fieldlist[i];
fieldHashList.add(fld.getName());
}
return fieldHashList;
}
/**
*
* @author LHY <br>
* Description 获取实体属性名称和类别键值对<br>
* LastModified 2013-12-9 Content <br>
*/
public static HashMap<String, Class<?>> getFieldMap(Object object) {
HashMap<String, Class<?>> fieldHashMap = new HashMap<String, Class<?>>();
Class<?> cls = object.getClass();
Field[] fieldlist = cls.getDeclaredFields();
for (int i = 0; i < fieldlist.length; i++) {
Field fld = fieldlist[i];
fieldHashMap.put(fld.getName(), fld.getType());
}
return fieldHashMap;
}
/**
*
* @author LHY <br>
* Description 获取一个新的实例<br>
* LastModified 2013-12-10 Content <br>
*/
public static Object getNewBean(Object object) {
try {
object = object.getClass().newInstance();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
return object;
}
}
Java 反射工具类封装的更多相关文章
- java反射工具类
package com.yingchao.kgou.core; import java.lang.reflect.Field; import java.lang.reflect.InvocationT ...
- JAVA DateUtil 工具类封装(转)
原文链接 https://blog.csdn.net/wangpeng047/article/details/8295623 作者三次整理后的代码 下载链接 https://www.lanzou ...
- Redis操作Set工具类封装,Java Redis Set命令封装
Redis操作Set工具类封装,Java Redis Set命令封装 >>>>>>>>>>>>>>>>& ...
- Redis操作List工具类封装,Java Redis List命令封装
Redis操作List工具类封装,Java Redis List命令封装 >>>>>>>>>>>>>>>> ...
- 反射工具类.提供调用getter/setter方法, 访问私有变量, 调用私有方法, 获取泛型类型Class,被AOP过的真实类等工具函数.java
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.Validate; import org.ap ...
- 反射工具类——ReflectUtils
测试方法:根据已知的方法名,来反射调用方法 package com.redmoon.forum.job; import java.util.ArrayList; import java.util.Li ...
- Java Properties工具类详解
1.Java Properties工具类位于java.util.Properties,该工具类的使用极其简单方便.首先该类是继承自 Hashtable<Object,Object> 这就奠 ...
- JAVA常用工具类汇总
一.功能方法目录清单: 1.getString(String sSource)的功能是判断参数是否为空,为空返回"",否则返回其值: 2.getString(int iSource ...
- Java Cookie工具类,Java CookieUtils 工具类,Java如何增加Cookie
Java Cookie工具类,Java CookieUtils 工具类,Java如何增加Cookie >>>>>>>>>>>>& ...
随机推荐
- fedora 24下修改IP
在ROOT环境下 cd /etc/sysconfig/network-scripts 找到类似 ifcfg-enp1s0的文件 sudo vi ifcfg-enp1s0 HWADDR=XX:XX:X ...
- 循序渐进Python3(十)-- 4 -- paramiko
paramiko模块,基于SSH用于连接远程服务器并执行相关操作. 使用 (1)SSHClient 用于连接远程服务器并执行基本命令 基于用户名密码连接: , ))transport.connect( ...
- SpringMVC的controller方法上若需要参数 如User
Bean: public class User { private String name; private String password; public String getN ...
- C# 从字符串中取出英文字母
string fid = context.Request["value2"];//fid=FCT1234 Regex re = new Regex(@"[a-zA-Z]+ ...
- shift
-------siwuxie095 shift 更改批处理文件中可替换参数的位置 语法: SHIFT [/n] 如果命令扩展被启用,SHIFT 命令支持 /n 命令行开关:该命令行开关告诉 命令从第 ...
- submit 后台运行代码
if EX_TABLE-matnr is not initial and EX_TABLE-KUNDE is not initial. wa_rspar-selname = 'MATNR' ...
- SpringMVC框架搭建 基于注解
本文将以一个很简单的案例实现 Springmvc框架的基于注解搭建,一下全为个人总结 ,如有错请大家指教!!!!!!!!! 第一步:创建一个动态web工程(在创建时 记得选上自动生成 web.xml ...
- [转] Oracle sql 查询突然变慢 -- 案例分析
转自:http://jingyan.baidu.com/article/8275fc868ce57946a03cf692.html 一条sql突然执行变慢,耗时9秒,应用是不能改的,只能从数据库方面下 ...
- Oracle 表空间
表空间 编辑 本词条缺少信息栏,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧! 表空间是数据库的逻辑划分,一个表空间只能属于一个数据库.所有的数据库对象都存放在指定的表空间中.但主要存放的是表 ...
- linux操作系统-脚本入门
背景:在使用linux时,经常会写一些linux命令片段,比较麻烦,有经验的程序员会把 这些碎片式的命令写成shell脚本 1.重启tomcat脚本 #!/bin/sh #kill tomcat pi ...