Reflect获取私有属性和私有方法
Posted 我的小侯子
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Reflect获取私有属性和私有方法相关的知识,希望对你有一定的参考价值。
Person类:
public class Person
private int age = 18;
private int getAge(int a)
return age + a;
在Mainactivity中:
Person person= new Person();
Class<? extends Person> cls = person.getClass();
try
Field field = cls.getDeclaredField("age");
field.setAccessible(true);
Object age=field.get(reflect);//此处的Object就是age对象的值
// Log.e("111", "==field====" + age);
// Log.e("111", "==field.getType()====" + field.getType().getName());
Method method = cls.getDeclaredMethod("getAge", int.class);
method.setAccessible(true);
Object invoke = method.invoke(reflect, 7);
// Log.e("111", "==invoke====" + invoke);
Constructor<? extends ReflectText> constructor = cls.getDeclaredConstructor();
ReflectText reflectText = constructor.newInstance();
// Log.e("111", "==reflectText====" + reflectText);
catch (NoSuchFieldException e)
e.printStackTrace();
catch (IllegalAccessException e)
e.printStackTrace();
catch (NoSuchMethodException e)
e.printStackTrace();
catch (InvocationTargetException e)
e.printStackTrace();
catch (InstantiationException e)
以上是关于Reflect获取私有属性和私有方法的主要内容,如果未能解决你的问题,请参考以下文章
PHP中的__get()和__set()方法获取设置私有属性