`

java 反射工具

 
阅读更多
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);   
    }   
}  

分享到:
评论

相关推荐

    java反射工具类 ReflectionUtils

    该工具类下载后拷贝到你要用的包,只需该包名即可

    一个Java反射工具类,可以完成查询字段值以及设置字段值的功能

    一个Java反射工具类,可以完成查询字段值以及设置字段值的功能。

    ReflectUtil java反射工具类

    ReflectUtil java反射工具类

    Java 反射工具

    反射技术集合,针对对象的反射操作,包含:判断对象属性是否为空、清空对象、读取设置属性等等,比较实用

    java反射工具类

    java的泛型和反射机制一直很难理解和应用,这个程序是关于反射和泛型的综合使用,主要实现获取一个类的属性名和方法,并可以获取属性值,存取属性值,属性名和属性值的字符串方式输出。只是个工具类,没有写测试类,...

    java 反射工具类,适用于框架开发、平台建设等项目

    java 反射工具类,适用于框架开发、平台建设等项目

    Java反射工具类

    提供以下几个功能: 1. 取最简类名 2. 动态赋值 3. 动态取值 4. 判断是否普通类型(自定义成员变量) 5. 动态取指定类的所有属性名

    Java反射调用工具类

    NULL 博文链接:https://shulinshulinzi.iteye.com/blog/2372372

    java反射机制工具类

    java反射,设置属性值,获得属性,具有多个对象同事设置,缓存的处理,

    java 反射注入工具类

    使用java 反射 将HttpServletRequest 中页面参数动态的注入到 javabean对象的辅助工具类,觉得还不错!

    JsonParser.java

    利用java反射机制实现的json与java对象互相转化的工具,只暴露了两个空开的接口,其他接口都是私有的。

    反射工具类ReflectionUtils.java

    进行数据库查询操作经常用到,包括getDeclaredField、getDeclaredMethod、getFieldValue、getSuperClassGenricType、getSuperGenericType、invokeMethod、makeAccessible、setFieldValue

    java 反射实体工具类

    StringData JPA 反射生成 自定义显示类集合 !!

    Java反射技术的一般应用

    在向学生讲解Class.forName()方法的使用时,有时需要扩展讲解为什么这样书写的原理,于是,扩展讲解Java反射技术可以查看被监视类的方法(构造方法和普通方法)、公有属性的功能,以达到封闭功能的效果。该例子使用...

    java之反射优化(缓存思路)源码

    java之反射优化(缓存思路)源码 编程中,抽象是一个重要思想。一个无状态(业务less)的抽象化工具方法,往往可以起到减少代码量的作用,使得程序员能更加focus更加重要的业务逻辑中去

    反射实例-JAVA反射机制

    Java中,反射是一种强大的工具。它使您能够创建灵活的代码,这些代码可以在运行时装配,无需在组件 之间进行源代表链接。反射允许我们在编写与执行时,使我们的程序代码能够接入装载到JVM中的类的内 部信息,而不是...

    java 反射得到某个方法

    NULL 博文链接:https://frank-zeng.iteye.com/blog/1153705

    jreflect:Java 基础反射操作工具包

    反射Java基础反射操作工具包下载依赖&lt; repositories&gt; &lt; repository&gt; &lt; id&gt;github-maven-repo&lt;/ id&gt; &lt; url&gt;... public class User { pr

Global site tag (gtag.js) - Google Analytics