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

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. VS2010中没有ado.net entity data model实体数据模型这一选项-解决办法

    前提先安装VS2010 SP1包. 解决办法: 1.从VS2010的安装盘目录下面的WCU\EFTools找到ADONETEntityFrameworkTools_chs.msi和ADONETEnti ...

  2. Network服务器

    1.授权服务器与非授权服务器:大多数网游都是授权服务器,用户无法修改数据.

  3. ListView下拉刷新

    本内容为复制代码: 一.自定义ListView控件: package com.xczl.smart.view; import java.util.Date; import com.suliang.R; ...

  4. JSP开发模式2(计算器)

    CalculatorBean———————————————————————————————————————————— public class CalculatorBean {    private ...

  5. FMDB中 databaseWithPath 的使用问题

    阅读fmdb的源码文件(下载地址http://github.com/ccgus/fmdb)会发现下面一段注释,里面提到的创建数据库的方法也在很多博客中被引用,但是跑代码的时候发现,文件并不会像文档中所 ...

  6. 使用merge同时执行insert和update操作

    SQL点滴18—SqlServer中的merge操作,相当地风骚   今天在一个存储过程中看见了merge这个关键字,第一个想法是,这个是配置管理中的概念吗,把相邻两次的更改合并到一起.后来在tech ...

  7. Oracle 左连接、右连接、全外连接、(+)号作用

    分类: Oracle Oracle  外连接 (1)左外连接 (左边的表不加限制)       (2)右外连接(右边的表不加限制)       (3)全外连接(左右两表都不加限制) 外连接(Outer ...

  8. 获取IMap上绘制的Element的区域范围

    运行环境:开发环境:Windows7旗舰版64bit.VisualStudio2008 With SP1.ArcEngine10.0.NetFrameWork4.0.IIS7和C#开发语言. 问题描述 ...

  9. Scala中Iterator允许执行一次

    背景 使用spark执行mapPartitionsWithIndex((index,iterator)=>{....}),在执行体中将iterator进行一次迭代后,再次根据iterator执行 ...

  10. nginx php-fpm安装配置

    nginx本身不能处理PHP,它只是个web服务器,当接收到请求后,如果是php请求,则发给php解释器处理,并把结果返回给客户端. nginx一般是把请求发fastcgi管理进程处理,fascgi管 ...