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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 在学野马 中级黑马   /  2014-10-4 20:11  /  1090 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 在学野马 于 2014-10-4 23:40 编辑
  1. public static void main(String[] args) throws Exception {
  2.                 // TODO Auto-generated method stub
  3.                 Class clazz=Class.forName("lianxi.printstr");
  4. //                Constructor[] con=clazz.getConstructors();
  5.                 Constructor con=clazz.getConstructor(String.class);
  6.                 Method method=clazz.getMethod("print",String.class);                 //为什么Method后面加了String.class就会报错
  7.                 Object obj=con.newInstance(new String("asd"));
  8.                 method.invoke(obj);
  9.                
  10.         }

  11. }
  12. class printstr{
  13.         String str;

  14.         public printstr(String str) {
  15.                 super();
  16.                 this.str = str;
  17.         }
  18.         public void print(){
  19.                 System.out.println(str);
  20.         }
复制代码
注释的地方不懂 是哪的问题

评分

参与人数 1技术分 +1 收起 理由
敏敏好学 + 1

查看全部评分

5 个回复

倒序浏览
有会的吗
回复 使用道具 举报
Method method=clazz.getMethod("print",String.class);  
这行代码,传入参数分别为 : 方法名  该方法所需的参数(此处指的是printstr类中的print方法)
你自己定义的printstr类中print方法是空参数,你写String.class肯定错. 修改如下:
Method method=clazz.getMethod("print");  

评分

参与人数 1技术分 +1 收起 理由
敏敏好学 + 1

查看全部评分

回复 使用道具 举报 1 0
yuli2039 发表于 2014-10-4 23:36
Method method=clazz.getMethod("print",String.class);  
这行代码,传入参数分别为 : 方法名  该方法所需 ...

   谢谢   
回复 使用道具 举报

不用谢
定义类的时候首字母注意大写, 不要不拘小节,良好的习惯必须要养成哦
回复 使用道具 举报
yuli2039 发表于 2014-10-4 23:44
不用谢
定义类的时候首字母注意大写, 不要不拘小节,良好的习惯必须要养成哦 ...

    恩恩  
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马