黑马程序员技术交流社区

标题: 反射参数问题 [打印本页]

作者: 在学野马    时间: 2014-10-4 20:11
标题: 反射参数问题
本帖最后由 在学野马 于 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.         }
复制代码
注释的地方不懂 是哪的问题

作者: 在学野马    时间: 2014-10-4 21:24
有会的吗
作者: yuli2039    时间: 2014-10-4 23:36
Method method=clazz.getMethod("print",String.class);  
这行代码,传入参数分别为 : 方法名  该方法所需的参数(此处指的是printstr类中的print方法)
你自己定义的printstr类中print方法是空参数,你写String.class肯定错. 修改如下:
Method method=clazz.getMethod("print");  
作者: 在学野马    时间: 2014-10-4 23:40
yuli2039 发表于 2014-10-4 23:36
Method method=clazz.getMethod("print",String.class);  
这行代码,传入参数分别为 : 方法名  该方法所需 ...

   谢谢   
作者: yuli2039    时间: 2014-10-4 23:44
在学野马 发表于 2014-10-4 23:40
谢谢

不用谢
定义类的时候首字母注意大写, 不要不拘小节,良好的习惯必须要养成哦
作者: 在学野马    时间: 2014-10-4 23:50
yuli2039 发表于 2014-10-4 23:44
不用谢
定义类的时候首字母注意大写, 不要不拘小节,良好的习惯必须要养成哦 ...

    恩恩  




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2