封装了常用的反射相关方法

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 反射工具类封装的更多相关文章

  1. java反射工具类

    package com.yingchao.kgou.core; import java.lang.reflect.Field; import java.lang.reflect.InvocationT ...

  2. JAVA DateUtil 工具类封装(转)

    原文链接 https://blog.csdn.net/wangpeng047/article/details/8295623  作者三次整理后的代码 下载链接   https://www.lanzou ...

  3. Redis操作Set工具类封装,Java Redis Set命令封装

    Redis操作Set工具类封装,Java Redis Set命令封装 >>>>>>>>>>>>>>>>& ...

  4. Redis操作List工具类封装,Java Redis List命令封装

    Redis操作List工具类封装,Java Redis List命令封装 >>>>>>>>>>>>>>>> ...

  5. 反射工具类.提供调用getter/setter方法, 访问私有变量, 调用私有方法, 获取泛型类型Class,被AOP过的真实类等工具函数.java

    import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.Validate; import org.ap ...

  6. 反射工具类——ReflectUtils

    测试方法:根据已知的方法名,来反射调用方法 package com.redmoon.forum.job; import java.util.ArrayList; import java.util.Li ...

  7. Java Properties工具类详解

    1.Java Properties工具类位于java.util.Properties,该工具类的使用极其简单方便.首先该类是继承自 Hashtable<Object,Object> 这就奠 ...

  8. JAVA常用工具类汇总

    一.功能方法目录清单: 1.getString(String sSource)的功能是判断参数是否为空,为空返回"",否则返回其值: 2.getString(int iSource ...

  9. Java Cookie工具类,Java CookieUtils 工具类,Java如何增加Cookie

    Java Cookie工具类,Java CookieUtils 工具类,Java如何增加Cookie >>>>>>>>>>>>& ...

随机推荐

  1. 使用myeclipse为java web项目添加SSH框架

    添加SSH框架时,要严格按照先Struts,再Spring,最后Hibernate.添加方法见下方: 第一步:添加Struts框架 请按照图示一步步认真执行,配置好struts才可以进行下一步 第二步 ...

  2. Maven安装与配置

    下载: 1.从官网http://maven.apache.org中下载,下载下来的是一个压缩包,解压即可.因为Maven本身也是用Java实现的.2.Maven的目录结构   /bin; maven的 ...

  3. Android菜鸟成长记7 -- Android的五大布局

    Android五大布局,相信android的都了解过,今天我根据自己的学习整理一下五大布局,主要介绍的是线性布局(LiearLayout),因为,其他的布局使用率不是很高. Android的五大布局 ...

  4. maven配置之setting配置

    <!--声明语句--> <?xml version="1.0" encoding="UTF-8"?> <settings xmln ...

  5. Redis(三)节省内部空间优化

    总体原则:key的名称不易过长,剩下的所有 能用纯数字表示的尽量用 Redis的每一个键值都是用一个redisObject结构体表示的结构体中有:    键值的类型(string/list/hash/ ...

  6. MySQL查询今天/本周/上周/本月/上个月份的数据

    MySQL查询的方式很多,下面为您介绍的MySQL查询实现的是查询本周.上周.本月.上个月份的数据,如果您对MySQL查询方面感兴趣的话,不妨一看. 查询当前今天的数据 SELECT name,sub ...

  7. Windows 2012 R2图标以及字体颜色发生变化更改成默认设置

    1. 在桌面按"Win+R",然后输出regedit.2. 定位到HKEY_CURRENT_USER\Control panel\Colors3. 对照下面提供给您的初始化颜色的注 ...

  8. SAP 采购订单行项目中科目分配被隐藏,发现行项目设置中显示字段长度为0

    1.sm30 维护 视图 TCVIEW 修改对应字段的显示长度

  9. WebConfig 自定义节点configSections配置信息

    WebConfig 自定义节点configSections配置信息 示例: <configuration>   <configSections>     <!-- For ...

  10. Java(String)

    1>String类型判等 (1)请运行以下示例代码StringPool.java,查看其输出结果.如何解释这样的输出结果?从中你能总结出什么? package StringPool; publi ...