java反射工具类
程序员文章站
2022-05-19 14:41:49
...
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登录系统,类PHP风味和Java风味,轻量极速,支持Mysql和MariaDB JavaMySQLPHPGmail
-
Android文件操作工具类详解
-
Java自定义异常类简单事例
-
Yii url 工具类
-
JAVA解析Excel工具easyexcel之深入源代码解密原理
-
jvm之java类加载机制和类加载器(ClassLoader)的用法
-
Android开源:数据库ORM框架GreenDao封装工具类使用
-
JAVA基础(String类)
-
Arrays工具类的方法使用说明
-
jquery插件 - PHP或者jquery有没有类似JAVA的jsoup或者htmlparser之类的高性能类库?