java通过反射,只需要传了类名和参数,就可以根据不同参数的构造方法实例化对象
2017-11-13 13:33
661 查看
转载自:http://www.jianshu.com/p/69ca44916ebf
无参: 表示Object[] 数组传入的是0个参数
1个参数: 表示 Object[] 数组传入的是1个参数
2个参数: 表示 Object[] 数组传入的是2个参数
k个参数: 表示 Object[] 数组传入的是k个参数
总结 :故可知这个代码块可以针对构造函数传入的参数的个数不同(Object[])来分别实例化类对象
作者:hw_zhu
链接:http://www.jianshu.com/p/69ca44916ebf
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
代码块
@requires_authorization private Object reflateInstance(String className, Object[] args)throws Exception{ Class newoneClass = Classs.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); }
解释
针对构造函数传入的参数个数分别进行解释无参: 表示Object[] 数组传入的是0个参数
1个参数: 表示 Object[] 数组传入的是1个参数
2个参数: 表示 Object[] 数组传入的是2个参数
k个参数: 表示 Object[] 数组传入的是k个参数
总结 :故可知这个代码块可以针对构造函数传入的参数的个数不同(Object[])来分别实例化类对象
作者:hw_zhu
链接:http://www.jianshu.com/p/69ca44916ebf
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
相关文章推荐
- java反射:根据给定类名实例化类并调用其方法
- 1.首先描述下自定义控件的一般方法: 自定义控件是被创造出来,所以先要复写它三个的构造方法,根据需求决定复写哪个,若没有自定义属性,复写只有一个参数的即可。若有自定义属性,则可以通过obtainSty
- Java 反射通过构造实例化对象
- java通过读取本地文件获取反射方法参数,执行对象方法
- 通过反射机制创建一个构造方法中参数数量可变的对象
- 使用反射创建Bean、Spring中是如何根据类名配置创建Bean实例、Java提供了Class类获取类别的字段和方法,包括构造方法
- java通过反射调用不同参数的方法
- 使用反射创建Bean、Spring中是如何根据类名配置创建Bean实例、Java提供了Class类获取类别的字段和方法,包括构造方法
- 1、c#中可以有静态构造方法,而java中没有,例如在单例模式中c#可以直接在静态构造中实例化对象,而java不可以
- 为什么Java反射对象必须有一个无参数的构造方法?
- 通过反射可以获取Class的构造方法 通过构造方法创建对象
- java通过反射调用不同参数的方法
- Java基础---基础加强---增强for循环、自动拆装箱及享元、枚举的作用、实现带有构造方法、透彻分析反射的基础_Class类、成员变量的反射、数组参数的成员方法进行反射、数组的反射应用
- 测试 java反射Reflection中 获取 类属性、方法、构造方法及 调用类方法改变 对象属性
- java如何通过反射取得泛型的实例化对象
- 根据指定方法的参数去构造一个新的对象的拷贝并将他返回
- 遍历Java对象,并执行其中的方法(通过反射执行方法)
- Java基础---基础加强---增强for循环、自动拆装箱及享元、枚举的作用、实现带有构造方法、透彻分析反射的基础_Class类、成员变量的反射、数组参数的成员方法进行反射、数组的反射应用
- 黑马程序员--Java基础加强--16.利用反射操作泛型V【通过Constructor反射解析泛型构造方法】【通过Field反射解析泛型成员变量】【个人总结】
- Java反射,根据类名创建带参数的实例