Java反射机制常用方法

来源:互联网 发布:速拓软件价格 编辑:程序博客网 时间:2024/05/23 11:02
Java反射机制常用方法:1. 得到某个对象的属性    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;      }  2. 得到某个类的静态属性    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;      }  3. 执行某对象的方法    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);      } 4. 执行某个类的静态方法    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);       }  5. 新建实例  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);    } 6. 判断是否为某个类的实例    public boolean isInstance(Object obj, Class cls) {          return cls.isInstance(obj);     } 7. 得到数组中的某个元素    public Object getByArray(Object array, int index) {           return Array.get(array,index);      } 

1 0