package com.example.test;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import android.util.Log;
public class ClsUtils {
private static final String TAG = "XXX";
/**
*
* @param className
* 需要反射类的名字
* @return
* @throws ClassNotFoundException
*/
public static Class creatClassObject(String className)
throws ClassNotFoundException {
Class cls = Class.forName(className);
return cls;
}
/**
*
* @param cls
* 反射类
* @param key
* 系统属性key值
* @param val
* key对应的value值
*/
public static void setSystemProperties(Class cls, String key, String val) {
try {
Method hideMethod = cls.getMethod("set", new Class[] {
String.class, String.class });
Object object = cls.newInstance();
hideMethod.invoke(object, new Object[] { new String(key),
new String(val) });
Log.e(TAG, "111111111111111111");
} catch (SecurityException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
/**
* 得到系统属性key值对应的value值
*
* @param cls
* 反射类
* @param key
* 系统属性key值
* @return
*/
public static String getSystemProperties(Class cls, String key) {
String value = null;
try {
Method hideMethod = cls.getMethod("get", String.class);
Object object = cls.newInstance();
value = (String) hideMethod.invoke(object, key);
} catch (SecurityException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
return value;
}
/**
* 查看反射类的 所有方法和常量
*
* @param cls
*/
static public void printMethod(Class cls) {
Log.e(TAG, "--------printMethod-------");
Method[] hideMethod = cls.getMethods();
// 取得所有方法
int i = 0;
for (i = 0; i < hideMethod.length; i++) {
Log.e(TAG, hideMethod[i].getName().toString());
}
Log.e(TAG, "--------print static var-------");
// 取得所有常量
Field[] allFields = cls.getFields();
for (i = 0; i < allFields.length; i++) {
Log.e(TAG, allFields[i].getName());
}
}
}
分享到:
相关推荐
该工具类下载后拷贝到你要用的包,只需该包名即可
一个Java反射工具类,可以完成查询字段值以及设置字段值的功能。
Java反射工具类主要指的是`java.lang.reflect`包中的类,它们提供了对类、接口、字段和方法的动态访问能力。这篇博文通过链接可能详细解释了如何利用这些工具类来实现一些高级功能。 1. `Class<?>`: 这是反射的核心...
ReflectUtil java反射工具类
这个“Java反射调用工具类”可能是为了简化和封装这些复杂的反射操作而创建的一个实用工具类。 首先,`JobProxy.java`可能是一个代理类,它利用反射来动态地调用目标对象的方法。在Java中,代理模式通常用于在不...
java 反射工具类,适用于框架开发、平台建设等项目
反射工具类. 提供调用getter/setter方法, 访问私有变量, 调用私有方法, 获取泛型类型Class, 被AOP过的真实类等工具函数.反射工具类. 提供调用getter/setter方法, 访问私有变量, 调用私有方法, 获取泛型类型Class, 被...
Java反射机制是Java编程语言中的一个强大特性,它允许程序在运行时检查和操作类、接口、字段和方法的信息。这个特性使得Java具备了高度的灵活性,能够在运行时动态地发现和使用类的属性和方法,即使这些信息在编译时...
使用java 反射 将HttpServletRequest 中页面参数动态的注入到 javabean对象的辅助工具类,觉得还不错!
反射技术集合,针对对象的反射操作,包含:判断对象属性是否为空、清空对象、读取设置属性等等,比较实用
java * 反射工具类. 提供调用getter/setter方法, 访问私有变量, 调用私有方法, 获取泛型类型Class,java * 反射工具类. 提供调用getter/setter方法, 访问私有变量, 调用私有方法, 获取泛型类型Class,java * 反射工具...
进行数据库查询操作经常用到,包括getDeclaredField、getDeclaredMethod、getFieldValue、getSuperClassGenricType、getSuperGenericType、invokeMethod、makeAccessible、setFieldValue
java组件开发(13)反射工具类
6. **反射API**:Java反射机制允许程序在运行时动态地获取类的信息(如类名、方法名)并调用它们,这在配置文件驱动的应用、插件系统和单元测试中十分有用。 7. **异常处理**:`Exception`类及其子类构成了Java的...
JavaUtils工具类是Java开发中常见的一类辅助代码集合,它们通常包含各种静态方法,用于简化常见的编程任务,提高开发效率。这篇博文链接(已提供但无法直接访问)可能详细探讨了JavaUtils工具类的设计原则、常用方法...
3. **Apache Commons Lang**:Apache软件基金会的一个开源项目,提供了大量扩展Java语言特性的工具类,如字符串处理、数组操作、反射、枚举操作等。 - `StringUtils`:提供了丰富的字符串操作方法,如空白字符处理...
"java常用工具类"这个主题涵盖了Java开发中常用的类和方法,这些工具类可以帮助我们简化编程工作,提高代码的可读性和可维护性。在Java中,`java.util`包就是这样一个包含大量工具类的包,提供了很多实用的功能。 1...