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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 邱成 中级黑马   /  2012-9-11 23:08  /  1078 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

package reflect;

import java.lang.reflect.*;

class ReflectTest
{
        public static void main(String[] args)throws Exception
        {
                System.out.println(args.length);
                if (args.length == 1)
                {
                        Class cc = Class.forName(args[0]);

                        try
                        {
                                Class[] params = new Class[1];
                                params[0] = int.class;
                                Constructor con = cc.getConstructor(params);
                                System.out.println(con);
                        }
                        catch (Exception ex)
                        {
                                System.out.println("error:                 " + ex.toString());
                        }

                        Class[] params1 = new Class[]{Integer.TYPE};
                        Constructor con1 = cc.getDeclaredConstructor(params1);
                        System.out.println(con1);
                }
        }
}

class Point
{
        int x;
        int y;
        Point(){}
        Point(int x)
        {
                this.x = x;
        }
        public Point(int x, int y)
        {
                this.x = x;
                this.y = y;
        }
}


结果:

警告:[unchecked] 对作为普通类型 java.lang.Class 的成员的 getConstructor(java.lang.Class<?>...) 的调用未经检查
                                Constructor con = cc.getConstructor(params);
                                                                   ^
警告:[unchecked] 对作为普通类型 java.lang.Class 的成员的 getDeclaredConstructor(java.lang.Class<?>...) 的调用未经检查
                        Constructor con1 = cc.getDeclaredConstructor(params1);

0 个回复

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