/**
* 通过反射获取未公开的方法
*
* @param clazz 需要反射获取的类名
* @param clsMethod 参数名
* @param methodName 方法名
* @param obj 需要赋值的对象
* @param value 待设置的值
*/
private static void getMethodByReflection(final Class<?> clazz, final Class<?> clsMethod, final String methodName, Object obj, Object value) {
if (null == clazz || null == clsMethod || null == methodName || null == obj) {
JLog.e(TAG, "getMethodByReflection has parameter is null ");
return;
}
try {
Method method = clazz.getDeclaredMethod(methodName, clsMethod);
// 私有方法赋予权限
method.setAccessible(true);
method.invoke(obj, value);
} catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException e) {
JLog.e(TAG, "getMethodByReflection error: " + e.getMessage());
}
}
private static void getFieldByReflection(final Class<?> clazz, final String fieldName, Object obj, Object value){
try {
Field path = clazz.getDeclaredField(fieldName);
path.setAccessible(true);//启用私有变量可赋值权限
path.set(obj,value);
} catch (NoSuchFieldException|IllegalAccessException e) {
e.printStackTrace();
}
}
Android开发反射学习
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- Android学习路线指南 http://blog.csdn.net/singwhatiwanna/article...
- 前面记录了调用C的学习笔记,现在来记录一下C反射调用Java的笔记。JNI开发学习之调用C方法 Android开...
- 从0到有,今天开始学一下 Android,了解一下JAVA的语法逻辑,以及Android Studio 开发工具的...
- Android APP开发学习线路图,Android APP 开发要掌握这些技能 Android APP开发第一步...