- 浏览: 63400 次
- 性别:
- 来自: 南京
-
文章分类
最新评论
java 反射工具
package com.util; import java.lang.reflect.Array; import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.Method; public class ReflectionUtil { /** * 得到某个对象的公共属性 * * @param owner, fieldName * @return 该属性对象 * @throws Exception * */ public Object getProperty(Object owner, String fieldName) throws Exception { Class ownerClass = owner.getClass(); Field field = ownerClass.getField(fieldName); Object property = field.get(owner); return property; } /** * 得到某类的静态公共属性 * * @param className 类名 * @param fieldName 属性名 * @return 该属性对象 * @throws Exception */ public Object getStaticProperty(String className, String fieldName) throws Exception { Class ownerClass = Class.forName(className); Field field = ownerClass.getField(fieldName); Object property = field.get(ownerClass); return property; } /** * 执行某对象方法 * * @param owner * 对象 * @param methodName * 方法名 * @param args * 参数 * @return 方法返回值 * @throws Exception */ public Object invokeMethod(Object owner, String methodName, Object[] args) throws Exception { Class ownerClass = owner.getClass(); Class[] argsClass = new Class[args.length]; for (int i = 0, j = args.length; i < j; i++) { argsClass[i] = args[i].getClass(); } Method method = ownerClass.getMethod(methodName, argsClass); return method.invoke(owner, args); } /** * 执行某类的静态方法 * * @param className * 类名 * @param methodName * 方法名 * @param args * 参数数组 * @return 执行方法返回的结果 * @throws Exception */ public Object invokeStaticMethod(String className, String methodName, Object[] args) throws Exception { Class ownerClass = Class.forName(className); Class[] argsClass = new Class[args.length]; for (int i = 0, j = args.length; i < j; i++) { argsClass[i] = args[i].getClass(); } Method method = ownerClass.getMethod(methodName, argsClass); return method.invoke(null, args); } /** * 新建实例 * * @param className * 类名 * @param args * 构造函数的参数 * @return 新建的实例 * @throws Exception */ public Object newInstance(String className, Object[] args) throws Exception { Class newoneClass = Class.forName(className); Class[] argsClass = new Class[args.length]; for (int i = 0, j = args.length; i < j; i++) { argsClass[i] = args[i].getClass(); } Constructor cons = newoneClass.getConstructor(argsClass); return cons.newInstance(args); } /** * 是不是某个类的实例 * @param obj 实例 * @param cls 类 * @return 如果 obj 是此类的实例,则返回 true */ public boolean isInstance(Object obj, Class cls) { return cls.isInstance(obj); } /** * 得到数组中的某个元素 * @param array 数组 * @param index 索引 * @return 返回指定数组对象中索引组件的值 */ public Object getByArray(Object array, int index) { return Array.get(array,index); } }
发表评论
-
html5 跨域访问
2017-08-18 13:10 399@Configuration public class ... -
javat进程 cpu100%,解决方法
2017-07-24 16:35 425Java进程cpu100%,解决方法如下: 1.执行top ... -
eclipse 汉化
2017-06-20 12:48 396Installing the language packs O ... -
判断移动设备环境
2016-06-21 09:50 434/** * 客户端判断工具 * */ ... -
Java 文件锁
2016-06-17 09:50 383FileChannel channel FileLock ... -
并发同步列子
2016-06-16 09:30 368import java.util.concurrent.Cou ... -
java.util.concurrent 用户指南
2016-06-15 14:09 350java.util.concurrent 用户指南 -
linux java 安装
2016-04-23 10:19 392下载jdk-7u79-linux-x64.tar.gz文件,解 ... -
对象序列化和反序列化
2016-04-14 20:28 437当一个对象的实例变量 ... -
java 垃圾回收机制
2016-03-02 11:08 330http://www.cnblogs.com/dartagn ... -
ngrok_windows.rar 映射外网
2016-02-29 16:50 541ngrok_windows.rar 映射外网 -
性能优化技巧
2015-09-09 08:48 6171. 尽量使用final修饰符。 带有final修饰符的类是 ... -
java 反编译工具
2015-02-14 17:05 636java 反编译工具 -
java 中对象比较大小
2010-06-10 22:36 4350java 中对象比较大小 java 中对象比较大小有两种方法 ... -
java中 对象的克隆(clone)
2010-05-01 02:40 874java中 克隆一个对象需要三步: 1:克隆的对象实现 Clo ...
相关推荐
该工具类下载后拷贝到你要用的包,只需该包名即可
一个Java反射工具类,可以完成查询字段值以及设置字段值的功能。
Java反射工具类主要指的是`java.lang.reflect`包中的类,它们提供了对类、接口、字段和方法的动态访问能力。这篇博文通过链接可能详细解释了如何利用这些工具类来实现一些高级功能。 1. `Class<?>`: 这是反射的核心...
ReflectUtil java反射工具类
反射技术集合,针对对象的反射操作,包含:判断对象属性是否为空、清空对象、读取设置属性等等,比较实用
java的泛型和反射机制一直很难理解和应用,这个程序是关于反射和泛型的综合使用,主要实现获取一个类的属性名和方法,并可以获取属性值,存取属性值,属性名和属性值的字符串方式输出。只是个工具类,没有写测试类,...
java 反射工具类,适用于框架开发、平台建设等项目
这个“Java反射调用工具类”可能是为了简化和封装这些复杂的反射操作而创建的一个实用工具类。 首先,`JobProxy.java`可能是一个代理类,它利用反射来动态地调用目标对象的方法。在Java中,代理模式通常用于在不...
反射工具类. 提供调用getter/setter方法, 访问私有变量, 调用私有方法, 获取泛型类型Class, 被AOP过的真实类等工具函数.反射工具类. 提供调用getter/setter方法, 访问私有变量, 调用私有方法, 获取泛型类型Class, 被...
不过,当需要实现动态性、解耦或元编程时,Java反射机制是一个不可或缺的工具。在设计和实现`BeanHelper`类时,应考虑如何有效利用缓存策略,以平衡性能与代码复杂度。同时,应确保工具类的使用方式安全,避免不必要...
Java反射是Java编程语言中的一个重要特性,它允许程序在运行时动态地获取类的信息并操作类的对象。在Java中,反射机制提供了强大的能力,包括在运行时检查类的结构、创建对象实例、调用方法以及访问和修改字段值。...
Java反射是Java编程语言中的一个强大工具,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。在Java中,反射主要用于在运行时分析类和对象,包括访问私有成员、调用私有方法、创建对象、获取类...
使用java 反射 将HttpServletRequest 中页面参数动态的注入到 javabean对象的辅助工具类,觉得还不错!
在本文中,我们将深入探讨如何使用Java反射来获取并执行某个特定的方法。 首先,我们需要了解Java反射的基本概念。`java.lang.Class`类是反射的核心,它代表了Java中的每一个类。我们可以通过以下方式获取到一个...
Java反射是Java编程语言中的一个强大特性,它允许运行时的程序访问并操作类、接口、字段和方法等信息,即使这些信息在编译时并未明确知晓。在Java中,反射通常通过`java.lang.Class`类和相关的API来实现。本实例将...
### 反射实例—JAVA反射机制 #### 一、反射概念及原理 ...总结而言,Java反射机制是构建灵活、可扩展应用程序的强大工具。然而,在使用反射时,开发者应当权衡其带来的好处和潜在的风险,确保合理有效地利用这一特性。
Java反射广泛应用于框架开发、动态代理、测试工具等领域。例如,在Spring框架中,反射被用来动态创建对象和调用方法;在Hibernate等ORM框架中,反射用于处理数据库记录与Java对象之间的映射关系。 #### 三、反射...