java吧 关注:1,247,859贴子:12,729,096
  • 7回复贴,共1

【新人发帖】一个关于反射的小问题。

只看楼主收藏回复

在网上找到的实例,关于构造器的,但是不知道为什么我运行之后会报错啊。2l贴上代码。求解答啊,司马们。


IP属地:吉林1楼2012-11-14 21:56回复
    2l?


    IP属地:北京2楼2012-11-14 21:57
    收起回复
      package Reflect;
      import java.lang.reflect.Constructor;
      class Person
      {
      public Person()
      {
      }
      public Person(String name)
      {
      this.name = name;
      }
      public Person(int age)
      {
      this.age = age;
      }
      public Person(String name, int age)
      {
      this.age = age; this.name = name;
      }
      public String getName()
      {
      return name;
      }
      public int getAge()
      {
      return age;
      }
      @Override
      public String toString()
      {
      return "[" + this.name + " " + this.age + "]";
      }
      private String name;
      private int age;
      }
      public class Hello
      {
      public static void main(String[] args)
      {
      Class<?> demo = null;
      try
      {
      demo = Class.forName("Reflect.Person");
      } catch (Exception e)
      {
      e.printStackTrace();
      }
      Person per1 = null;
      Person per2 = null;
      Person per3 = null;
      Person per4 = null;
      // 取得全部的构造函数
      Constructor<?> cons[] = demo.getConstructors();
      try
      {
      per1 = (Person) cons[0].newInstance();
      per2 = (Person) cons[1].newInstance("Rollen");
      per3 = (Person) cons[2].newInstance(20);
      per4 = (Person) cons[3].newInstance("Rollen", 20);
      } catch (Exception e)
      {
      e.printStackTrace();
      }
      System.out.println(per1);
      System.out.println(per2);
      System.out.println(per3);
      System.out.println(per4);
      }}


      IP属地:吉林3楼2012-11-14 22:00
      回复
        帮忙看下,在贴吧贴代码好难啊。


        IP属地:吉林4楼2012-11-14 22:00
        回复

          这个是报的错。


          IP属地:吉林5楼2012-11-14 22:02
          回复