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反射工具类,可以完成查询字段值以及设置字段值的功能。
提供以下几个功能: 1. 取最简类名 2. 动态赋值 3. 动态取值 4. 判断是否普通类型(自定义成员变量) 5. 动态取指定类的所有属性名
ReflectUtil java反射工具类
java 反射工具类,适用于框架开发、平台建设等项目
NULL 博文链接:https://shulinshulinzi.iteye.com/blog/2372372
使用java 反射 将HttpServletRequest 中页面参数动态的注入到 javabean对象的辅助工具类,觉得还不错!
反射技术集合,针对对象的反射操作,包含:判断对象属性是否为空、清空对象、读取设置属性等等,比较实用
java反射,设置属性值,获得属性,具有多个对象同事设置,缓存的处理,
进行数据库查询操作经常用到,包括getDeclaredField、getDeclaredMethod、getFieldValue、getSuperClassGenricType、getSuperGenericType、invokeMethod、makeAccessible、setFieldValue
java组件开发(13)反射工具类
StringData JPA 反射生成 自定义显示类集合 !!
文件工具类,Http请求工具类,图片处理工具类。Ip工具类。mail工具类,Map工具类,MD5编码工具类,数字工具类,随机数工具类,反射工具类,字符串处理工具类,URL工具类,XML工具类,常用的数据验证工具类
java基础工具类iceroot iceroot是一个java基础工具类.封装了很多有用的方法. 该类库无任何第三方依赖. 涵盖了 字符串操作 时间转化 读取配置文件 等方面. 基础工具类对于java代码的编写是非常必要的,然 而很多...
该代码经过作者的优化,可直接使用,反射一个实体,从试题中获取值
主要为大家详细介绍了java常用工具类,包括Reflect反射工具类、String字符串工具类,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
在向学生讲解Class.forName()方法的使用时,有时需要扩展讲解为什么这样书写的原理,于是,扩展讲解Java反射技术可以查看被监视类的方法(构造方法和普通方法)、公有属性的功能,以达到封闭功能的效果。该例子使用...