- 浏览: 59770 次
- 性别:
- 来自: 南京
文章分类
最新评论
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 368@Configuration public class ... -
javat进程 cpu100%,解决方法
2017-07-24 16:35 382Java进程cpu100%,解决方法如下: 1.执行top ... -
eclipse 汉化
2017-06-20 12:48 367Installing the language packs O ... -
判断移动设备环境
2016-06-21 09:50 405/** * 客户端判断工具 * */ ... -
Java 文件锁
2016-06-17 09:50 351FileChannel channel FileLock ... -
并发同步列子
2016-06-16 09:30 337import java.util.concurrent.Cou ... -
java.util.concurrent 用户指南
2016-06-15 14:09 328java.util.concurrent 用户指南 -
linux java 安装
2016-04-23 10:19 358下载jdk-7u79-linux-x64.tar.gz文件,解 ... -
对象序列化和反序列化
2016-04-14 20:28 408当一个对象的实例变量 ... -
java 垃圾回收机制
2016-03-02 11:08 299http://www.cnblogs.com/dartagn ... -
ngrok_windows.rar 映射外网
2016-02-29 16:50 460ngrok_windows.rar 映射外网 -
性能优化技巧
2015-09-09 08:48 5841. 尽量使用final修饰符。 带有final修饰符的类是 ... -
java 反编译工具
2015-02-14 17:05 590java 反编译工具 -
java 中对象比较大小
2010-06-10 22:36 4294java 中对象比较大小 java 中对象比较大小有两种方法 ... -
java中 对象的克隆(clone)
2010-05-01 02:40 835java中 克隆一个对象需要三步: 1:克隆的对象实现 Clo ...
相关推荐
该工具类下载后拷贝到你要用的包,只需该包名即可
一个Java反射工具类,可以完成查询字段值以及设置字段值的功能。
ReflectUtil java反射工具类
反射技术集合,针对对象的反射操作,包含:判断对象属性是否为空、清空对象、读取设置属性等等,比较实用
java的泛型和反射机制一直很难理解和应用,这个程序是关于反射和泛型的综合使用,主要实现获取一个类的属性名和方法,并可以获取属性值,存取属性值,属性名和属性值的字符串方式输出。只是个工具类,没有写测试类,...
java 反射工具类,适用于框架开发、平台建设等项目
提供以下几个功能: 1. 取最简类名 2. 动态赋值 3. 动态取值 4. 判断是否普通类型(自定义成员变量) 5. 动态取指定类的所有属性名
NULL 博文链接:https://shulinshulinzi.iteye.com/blog/2372372
java反射,设置属性值,获得属性,具有多个对象同事设置,缓存的处理,
使用java 反射 将HttpServletRequest 中页面参数动态的注入到 javabean对象的辅助工具类,觉得还不错!
利用java反射机制实现的json与java对象互相转化的工具,只暴露了两个空开的接口,其他接口都是私有的。
进行数据库查询操作经常用到,包括getDeclaredField、getDeclaredMethod、getFieldValue、getSuperClassGenricType、getSuperGenericType、invokeMethod、makeAccessible、setFieldValue
StringData JPA 反射生成 自定义显示类集合 !!
在向学生讲解Class.forName()方法的使用时,有时需要扩展讲解为什么这样书写的原理,于是,扩展讲解Java反射技术可以查看被监视类的方法(构造方法和普通方法)、公有属性的功能,以达到封闭功能的效果。该例子使用...
java之反射优化(缓存思路)源码 编程中,抽象是一个重要思想。一个无状态(业务less)的抽象化工具方法,往往可以起到减少代码量的作用,使得程序员能更加focus更加重要的业务逻辑中去
Java中,反射是一种强大的工具。它使您能够创建灵活的代码,这些代码可以在运行时装配,无需在组件 之间进行源代表链接。反射允许我们在编写与执行时,使我们的程序代码能够接入装载到JVM中的类的内 部信息,而不是...
NULL 博文链接:https://frank-zeng.iteye.com/blog/1153705
反射Java基础反射操作工具包下载依赖< repositories> < repository> < id>github-maven-repo</ id> < url>... public class User { pr