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 >>>>>>>>>>>>& ...
随机推荐
- 查看表的datapages
select object_name(i.object_id) as tableName,data_pages as dataPagesfrom sys.indexes as ijoin sys.pa ...
- 用R实现全排列的分类
R 其实是个很好用的东东哦-最近写了个小函数,可以实现全排列数的枚举,代码如下: permut<-function(seq){ seq_len=length(seq); if(s ...
- unity 3d孤岛求生案例代码解析
这是第一人称控制器脚本,如果把摄像机放在胶囊体后面感觉就是第三人称了啊. #pragma strict var speed : float = 6.0; var jumpspeed: float = ...
- thinkphp学习简易教程(一) thinkphp创建项目
1.在本地服务器根目录下创建项目目录,如命名为app: 2.把thinkphp的压缩包解压到与项目同级目录下,如app是放在目录APP下面,即项目目录路径为'APP/app/',则thinkphp应解 ...
- redis配置文件redis.conf说明
redis.conf 配置项说明如下:1. Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程 daemonize no2. 当Redis以守护进程方式运行时, ...
- android添加第三方字体并设置的简单使用
1.java文件 package lpc.com.project006; import android.app.Activity; import android.content.res.AssetMa ...
- man curl_easy_setopt(原创)
中文翻译: curl_easy_setopt(3) libcurl 手册 curl_easy_setopt(3) 名称 curl_easy_setopt -curl的设置选项概要 #include & ...
- Android资源文件简介
Android资源文件简介 1. Android应用资源的作用 (1) Android项目中文件分类 在Android工程中, 文件主要分为下面几类 : 界面布局文件, Java src源文件, 资源 ...
- 关于meta标签
一.Meta标签中的format-detection属性及含义 意为:格式检测 或许你会有这样的经历:当你在制作手机端的页面中,点击了没有加任何链接的格式的数字时,这时手机会进行自动拔号提示操作! 禁 ...
- nginx+tomcat负载均衡
最近练习nginx+tomcat负载均衡.根据一些资料整理了大体思路,最终实现了1个nginx+2个tomcat负载均衡. 安装JDK 1>进入安装目录,给所有用户添加可执行的权限 #chmod ...