A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 崔岩 中级黑马   /  2012-3-24 17:45  /  1397 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马