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 >>>>>>>>>>>>& ...
随机推荐
- WinForm添加快捷键
1. WinForm下给窗体和按钮添加快捷键 设置Enter键要执行的动作:设置FORM的 AcceptButton属性为指定的button按钮. 设置ESC键要执行的动作:设置FORM的Cac ...
- scikit-learn实现ebay数据分析 的随笔
注:只是随笔 import pandas as pd train = pd.read_csv() 读入scv格式的文件 train = train_set.drop(['EbayID','Quant ...
- 查询阻塞的sql
WITH ProcessCTE(blocked) AS ( SELECT blocked FROM sys.sysprocesses WHERE blocked>0 union SELECT s ...
- loadrunner --global schedule设置
- Windows服务二:测试新建的服务、调试Windows服务
一.测试Windows服务 为了使Windows服务程序能够正常运行,我们需要像创建一般应用程序那样为它创建一个程序的入口点.像其他应用程序一样,Windows服务也是在Program.cs的Main ...
- asp.net Ajax和web services
新建一个web服务 using System; using System.Collections.Generic; using System.Linq; using System.Web; using ...
- struts2的国际化文件在jsp中的引用
struts.xml中的配置 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts ...
- 如何得到EF(ADO.NET Entity Framework)查询生成的SQL? ToTraceString Database.Log
ADO.NET Entity Framework ToTraceString //输出单条查询 DbContext.Database.Log //这里有详细的日志
- Python--Argparse学习感悟
笔者在https://docs.python.org/2/howto/argparse.html#id1上,学习到了argparse的基本概念和使用规范,学习过后忍不住将自己的一些体会和大家分享一下. ...
- Xcode导航栏不显示模拟器选择框ToolBar
不显示ToolBar的小伙伴可能就是下面的样子: 全屏后就可以看到ToolBar,像下面这样: 刚开始还以为是模拟器没装,还傻不拉几的去下载模拟器,后来才发现,只要下面的操作即可显示 点击" ...