//反射获取对象
// TestBean testBean = new TestBean();
try {
//只有一个构造函数 并且是空参
// TestBean testBean = TestBean.class.newInstance();
// Log.d("TAG-->", testBean.getName());
//getDeclaredConstructor 获取所有的构造方法 getConstructor 这个是获取公共构造方法
//多个构造函数 空参
Constructor<TestBean> declaredConstructor1 = TestBean.class.getDeclaredConstructor();
//设置成公共方法
declaredConstructor1.setAccessible(true);
//获取对象
TestBean testBean1 = declaredConstructor1.newInstance();
//多个构造函数 有一个参
Constructor<TestBean> declaredConstructor2 = TestBean.class.getDeclaredConstructor(String.class);
//设置成公共方法
declaredConstructor2.setAccessible(true);
//获取对象
TestBean testBean2 = declaredConstructor2.newInstance("我是苗子");
//带多个参数
Constructor<TestBean> declaredConstructor3 = TestBean.class.getDeclaredConstructor(String.class,int.class);
//设置成公共方法
declaredConstructor3.setAccessible(true);
//获取对象
TestBean testBean3 = declaredConstructor3.newInstance("wo shi miaozi",234);
//获取方法
//空参
Method setName = TestBean.class.getDeclaredMethod("setName");
//设置成公共方法
setName.setAccessible(true);
//执行
setName.invoke(testBean2);
//有参
Method setName2 = TestBean.class.getDeclaredMethod("setName",String.class);
//设置成公共方法
setName2.setAccessible(true);
//执行
setName2.invoke(testBean2,"cao ni ma miao zi");
//属性获取
Field field = TestBean.class.getDeclaredField("name");
field.setAccessible(true);
String name = (String) field.get(testBean2);
Log.d("TAG","name = "+name);
} catch (Exception e) {
e.printStackTrace();
}
Android-反射使用
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 前言 本章内容主要研究一下java高级特性-反射、android注解、和动态代理的使用,通过了解这些技术,可以为了...
- 官方定义:反射主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。在计算机科学领域,反射是一类应用,它们能...
- 巧妙使用Java反射处理对象到列表数据源 - For Android 背景 最近朋友遇到一个问题,针对一个数据集合...