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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 我手心里的宝 高级黑马   /  2013-4-11 11:03  /  1882 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 我手心里的宝 于 2013-4-11 11:39 编辑

  1. import java.lang.reflect.Constructor;

  2. public class Demo1 {
  3.         public static void main(String[] args) throws Exception{
  4.                
  5.                 Class<Person> clazz = Person.class;
  6.                 Constructor<Person> constructor1 = clazz.getConstructor(String.class,int.class);
  7.                 Person p1 = constructor1.newInstance("王五",35);
  8.                 System.out.println(p1);
  9.         }
  10. }
  11. class Person{
  12.         String name = "陈宝峰";
  13.         int age = 24;
  14.         Person(){
  15.                
  16.         }
  17.         Person(String name , int age){
  18.                 this.name = "小翠";
  19.                 this.age = 25;
  20.         }
  21.         public void setName(){
  22.                 this.name = "小宝峰";
  23.         }
  24.         public String getName(){
  25.                 return this.name;
  26.         }
  27.         public String toString(){
  28.                 return this.name+"::"+this.age;
  29.         }
  30.         
  31. }
复制代码
哪错了,为什么会报这个异常呢 求解呀

@8D8@%K98%1O%8XBBI6U@HY.jpg (19.93 KB, 下载次数: 17)

@8D8@%K98%1O%8XBBI6U@HY.jpg

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

8 个回复

倒序浏览
各位在线等呀 求解
回复 使用道具 举报
Constructor<Person> constructor1 = clazz.getConstructor(String.class);//你获取的构造器只有一个String类型的参数而你的Person类里根本没有这样的构造器且你下边传入得参数还是两个。。。。。。。。。。。。。。。。

回复 使用道具 举报
贾振凯 发表于 2013-4-11 11:22
Constructor constructor1 = clazz.getConstructor(String.class);//你获取的构造器只有一个String类型的参 ...

换成两个也不行,刚才是疏忽打错了
回复 使用道具 举报
哦。。。。。。。。。。。你构造器没有加Public修饰!试下吧!
期待你的结果呵呵。。。。。。。。。。。。
回复 使用道具 举报
应该是public
回复 使用道具 举报
恩 对 就是这的错误 ,谢谢了
回复 使用道具 举报
本帖最后由 贾振凯 于 2013-4-11 11:43 编辑

试了一下,加了public小翠就不再羞涩啦:lol
回复 使用道具 举报
将带参数的构造函数设置为public就可以了,获取指定构造方法的那个方法是获取公共的构造函数的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马