public class AppInfo {
private String mAppName;
public String getAppName() {
return mAppName;
}
public void setAppName(String appName) {
this.mAppName = appName;
}
}
获取方法
public static void test() {
try {
获取class 实例
Class<?> clz = Class.forName("com.xxx.xxx.bean.AppInfo");
//获取object实例,即AppInfo实例,这里会调用无参构造方法
Object obj = clz.newInstance();
//调用方法setAppName,传入String 类型的参数
Method mothod1 = clz.getMethod("setAppName",String.class);
//执行该方法,实参为"hhhhh",obj为要操作的对象
mothod1.invoke(obj,"hhhhh");
//调用getAppName 方法,不需要传参
Method mothod = clz.getMethod("getAppName");
//在obj对象中,执行该方法
String name = (String) mothod.invoke(obj);
} catch (Exception e) {
e.printStackTrace();
}
}
获取成员变量
public void getField(Object obj) {
Class<?> class1 = obj.getClass();
Field[] fields = class1.getDeclaredFields();//获取全部成员变量
Field[] fields = class1.getDeclaredFields();
for( Field field : fields ){
Log.i("test", "name==" + field.getName());//依次获取成员变量名
}
Field field = class1.getDeclaredField("lottieDrawable");//获取变量名为lottieDrawable 的变量
field.setAccessible(true);//开放权限
LottieDrawable drawable = (LottieDrawable) field.get(obj);//从对象中获取该成员变量值
//field.getInt(obj),field.getBoolean(obj)....
}