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

  1. public class ReflectUtil {
  2. /**
  3. * 通过类路径获取Class
  4. *
  5. * @author LHY <br>
  6. * Description <br>
  7. * LastModified 2014-5-9 Content <br>
  8. */
  9. public static Class<?> getClass(String packagePath) throws ClassNotFoundException {
  10. return Class.forName(packagePath);
  11. }
  12.  
  13. /**
  14. * 获取的Activity的Class
  15. *
  16. * @author LHY <br>
  17. * Description packageRoot:模块跟路径<br>
  18. * activityPath:Activity完整路径或 模块下Activity路径 LastModified 2014-5-9
  19. * Content <br>
  20. */
  21. public static Class<?> getModelClass(String packageRoot, String activityPath) throws ClassNotFoundException {
  22. if (activityPath.indexOf(".") == 0) {
  23. activityPath = packageRoot + activityPath;
  24. }
  25. return getClass(activityPath);
  26. }
  27.  
  28. /**
  29. *
  30. * @author LHY <br>
  31. * Description 模拟get方法<br>
  32. * LastModified 2013-12-9 Content <br>
  33. * *@param obj 操作的对象<br>
  34. * *@param att 操作的属性<br>
  35. * @param <T>
  36. */
  37. public static <T> T getter(Object obj, String att) {
  38. T t = null;
  39. Field field;
  40. try {
  41. field = obj.getClass().getDeclaredField(att);
  42. field.setAccessible(true);
  43. t = (T) field.get(obj);
  44. } catch (NoSuchFieldException e) {
  45. e.printStackTrace();
  46. } catch (IllegalArgumentException e) {
  47. e.printStackTrace();
  48. } catch (IllegalAccessException e) {
  49. e.printStackTrace();
  50. }
  51. return t;
  52. }
  53.  
  54. /**
  55. *
  56. * @author LHY <br>
  57. * Description 通过属性名,添加属性<br>
  58. * LastModified 2014-2-13 Content <br>
  59. */
  60. public static void setter(Object root, String name, Object value) {
  61.  
  62. Field field;
  63. try {
  64. field = root.getClass().getDeclaredField(name);
  65. field.setAccessible(true);
  66. field.set(root, value);
  67. } catch (NoSuchFieldException e) {
  68. e.printStackTrace();
  69. } catch (IllegalArgumentException e) {
  70. e.printStackTrace();
  71. } catch (IllegalAccessException e) {
  72. e.printStackTrace();
  73. }
  74. }
  75.  
  76. /**
  77. *
  78. * @author LHY <br>
  79. * Description 获取实体属性名称列表<br>
  80. * LastModified 2013-12-9 Content <br>
  81. */
  82. public static List<String> getFieldList(Object object) {
  83. List<String> fieldHashList = new ArrayList<String>();
  84. Class<?> cls = object.getClass();
  85. Field[] fieldlist = cls.getDeclaredFields();
  86. for (int i = 0; i < fieldlist.length; i++) {
  87. Field fld = fieldlist[i];
  88. fieldHashList.add(fld.getName());
  89. }
  90. return fieldHashList;
  91. }
  92.  
  93. /**
  94. *
  95. * @author LHY <br>
  96. * Description 获取实体属性名称和类别键值对<br>
  97. * LastModified 2013-12-9 Content <br>
  98. */
  99. public static HashMap<String, Class<?>> getFieldMap(Object object) {
  100. HashMap<String, Class<?>> fieldHashMap = new HashMap<String, Class<?>>();
  101. Class<?> cls = object.getClass();
  102. Field[] fieldlist = cls.getDeclaredFields();
  103. for (int i = 0; i < fieldlist.length; i++) {
  104. Field fld = fieldlist[i];
  105. fieldHashMap.put(fld.getName(), fld.getType());
  106. }
  107. return fieldHashMap;
  108. }
  109.  
  110. /**
  111. *
  112. * @author LHY <br>
  113. * Description 获取一个新的实例<br>
  114. * LastModified 2013-12-10 Content <br>
  115. */
  116. public static Object getNewBean(Object object) {
  117. try {
  118. object = object.getClass().newInstance();
  119. } catch (InstantiationException e) {
  120. e.printStackTrace();
  121. } catch (IllegalAccessException e) {
  122. e.printStackTrace();
  123. }
  124. return object;
  125.  
  126. }
  127. }

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. Session和Cookie的作用以及实现

    http://www.cnblogs.com/xiaoshitoutest/p/6103790.html

  2. LNMP添加、删除虚拟主机及伪静态使用教程

    一般情况下每个虚拟主机就是一个网站,网站一般通过域名进行访问.LNMP 1.2的网站添加过程和LNMP 1.1的基本类似,但是增加了FTP和数据库的创建.LNMP1.2的防跨目录也由原来在php.in ...

  3. sftp上传 - 待完

    1.搭建本地sftp 1.1.下载msftpsrvr.exe软件 下载地址:http://www.download3k.com/Install-Core-FTP-Mini-SFTP-Server.ht ...

  4. 学习ExtJs教程初级

    搭建环境:myeclipse10 +tomcat6+jdk6 新建一个webproject(启动myeclipse:file--new--webproject) 导入相关的js和css(百度下载就好. ...

  5. 控制台telnet连接后无法关闭

    按下ctrl+]然后再quit就可以close connection

  6. centos配置vpn服务器

    1.配置epel软件源wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm2.安装PPTP服务端软件yu ...

  7. IT青年深圳销售求职经历

    今年五月份,辞掉了一份月薪5k ,没有加班,双休,福利不错的IT工作,我始终觉得这样的工作太过平稳,没有任何激情,虽然没想好接下来的路怎么走,但是最终我还是选择了裸辞.在所在的城市玩了半个月,算是作最 ...

  8. delphi安装 Tclientsocket, Tserversocket控件

    菜单component->Install Packets按Add按钮,选择delphi目录里的bin目录下的dclsockets70.bpl(delphi2010是 dclsockets140. ...

  9. Android遍历获取Office格式(Word,Excel,PPT,PDF)的文件并打开

    此案例主要是模仿QQ加载WPS(Word,Excel,PPT)本地文件可打开查看,使用ListView加载,使用线程扫描SD卡下所有目录加载指定的Word,Excel,PPT等格式的文件,ListVi ...

  10. ios xib或storyBoard的那些小方法

    今天看了一下xib里的一些小技巧,但是百度一搜的话,网上已经有人写过教程了,在这里我也就懒一下,不写那么详细了,就写一些如何百度的方法! 1."通过KVC修改占位文字的颜色" [t ...