Java反射专题2
来源:互联网 发布:电信网络电视连接不上 编辑:程序博客网 时间:2024/06/06 08:51
-1-获取构造器的方法
(1)Constructor getConstructor(Class
public class Person{ private String name; private int age; private Person(String name , int age) { this.name = name; this.age = age; } @Override public String toString() { return "Person [ name: " + name + " , age: " + age + " ]"; }}
在上的类中私有化了一个构造器。
private void showPerson(){ try { Class<?> clazz = Class.forName("com.test.zhangtao.activitytest.Person"); Constructor constructor = clazz.getDeclaredConstructor(String.class , Integer.TYPE); constructor.setAccessible(true); Object person = constructor.newInstance("Java" , 14); Log.d(TAG , person.toString()); } catch (Exception e) { e.printStackTrace(); }}
一定不要忘了在调用newInstance方法之前,调用constructor.setAccessible(true)。实际上setAccessible()方法属于AccessibleObject(父类),Method,Constructor,Field都可以调用该方法,从而实现通过反射来调用private方法,private构造器和private成员变量。
-3-通用public修饰的构造器创建对象的方式
public Object newInstance(String className, Object[] args) throws Exception { Class newoneClass = Class.forName(className); Class[] argsClass = new Class[args.length]; for (int i = 0, j = args.length; i < j; i++) { argsClass[i] = args[i].getClass(); } Constructor cons = newoneClass.getConstructor(argsClass); return cons.newInstance(args);}
-4-反射Class对象中一些其它的常用方法
Package getPackage():获取此类的包;
String getName():以字符串形式返回此Class对象所表示的类的名称;
String getSimpleName():以字符串形式返回此Class对象所表示的类的简称;
0 0
- Java反射专题2
- Java 反射专题
- Java反射专题1
- Java总结——反射专题
- Java--Reflect(反射)专题2——动态加载类
- 反射专题3
- 反射专题4
- 反射专题5
- 反射面试专题
- Java--Reflect(反射)专题5——方法反射的基本操作
- Java--Reflect(反射)专题6——通过反射了解集合泛型的本质
- 【Java】(2)Java反射
- java反射技术(2)
- Java 反射机制2
- Java反射2
- java反射2
- Java 反射 2
- [java]反射机制2
- ADB can't work
- 【腾讯优测干货分享】越用越卡为哪般——如何降低App的待机内存(一)
- javascirpt prototype
- spring,springmvc,mybatis基本整合(一)--xml文件配置方式(1)
- 使用axis2解析wsdl生成Webservice客户端代码
- Java反射专题2
- 【游戏渲染】【译】Unity3D Shader 新手教程(2/6) —— 积雪Shader
- LinkedHashMap和HashMap的比较使用
- 【伪】第一次在Xcode中安装CocoaPods并,安装第三方框架AFNetWorking!
- 作用域public,protected,private,以及不写时的区别?
- 2016秋季美团面经_后台研发
- linux常用命令——install
- sdk 更新地址
- 命令模式(行为类)