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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 赵许星 于 2013-11-21 21:28 编辑

  1. //反射
  2. package com.itheima;

  3. import java.lang.reflect.Constructor;
  4. import java.lang.reflect.InvocationTargetException;

  5. public class Test8 {
  6.         
  7.         public static void main(String[] args) throws InstantiationException, IllegalAccessException, ClassNotFoundException, SecurityException, NoSuchMethodException, IllegalArgumentException, InvocationTargetException {
  8.                
  9.                 //类的字节码               
  10.                 //第一种 获取默认构造函数
  11.                 System.out.println(Class.forName("com.itheima.Student")+"-----"+Student.class);
  12.                 ((Student) Class.forName("com.itheima.Student").newInstance()).printInfo();
  13.                
  14.                 //第二种获取指构造函数
  15.                 Constructor constructor =  Class.forName("com.itheima.Student").getConstructor(String.class,String.class);
  16.                 Student student = (Student) constructor.newInstance("zhang","23");  //为何报错!!!!!
  17.                 student.printInfo();
  18.         }

  19. }

  20. class Student{
  21.         private String name;
  22.         private String age;
  23.         
  24.         Student()
  25.         {
  26.                 name="defined";
  27.                 age="0";
  28.         }
  29.         Student(String name,String age)
  30.         {
  31.                 this.name = name;
  32.                 this.age = age;
  33.         }        
  34.         void printInfo()
  35.         {
  36.                 System.out.println("姓名:"+name+"  年龄:"+age);
  37.         }
  38. }


  39. /*
  40. *
  41. *          1、类名.class;例如:System.class;

  42.         2、对象.getClass(),例如:new Stirng(“abc”).getClass();

  43.         3、Class.forName(“类名”),例如:Class.forName(“java.lang.String”);
  44. * */
复制代码

大家把代码拷贝一下,运行试试,
Constructor constructor =  Class.forName("com.itheima.Student").getConstructor(String.class,String.class);

点评

FFF
应该细心一点的~小问题,就不给分分啦~  发表于 2013-11-17 18:35

2 个回复

倒序浏览
你的那个构造方法不是public的。。。用getDeclaredConstructor吧。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马