今天写个通用反射获取任意构造函数的方法时,原本的思路是用Constructor [] Cons =getConstructors();先获得所有的构造函数,
在以增强for循环 for(Constructor c : Cons)来遍历,通过constructor的getName()方法获取构造函数名称,之后再与从方法传进来的参数比较,若相等则返回这个构造函数。
后来写着写着,突然想起来听视频时候又个可变参数的概念 : 方法名(参数类型1 参数名1,参数类型2...参数名2) 后面的这个参数名2,就可以是任意个数的参数,对于重载的N个方法,就可以用这样的可变参数确定。这样一来省去了好多代码,省去了循环,太好用了简直。。代码如下- //以可变参数获得任意构造方法
- private static Constructor con ;
- public static Constructor getConstructor(String className,Class... paraType)
- {
-
- try {
-
- con = Class.forName(className).getDeclaredConstructor(paraType);
- con.setAccessible(true);
-
- } catch (Exception e) {
-
- e.printStackTrace();
- }
-
- return con;
-
- }
复制代码 |