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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 在乎.. 中级黑马   /  2013-7-15 23:05  /  988 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 在乎.. 于 2013-7-17 11:01 编辑
  1. import java.lang.reflect.*;



  2. public class ReflectTest {


  3.         public static void main(String[] args) throws Exception {

  4.     reflact_test rt=new reflact_test(4, 7,"abbc","bbbbbc");


  5.    rt.getClass().getMethod("add", int.class,int.class,int.class).invoke(rt,1,3,4);    //报告没有这个方法,求解释一下咯。

  6. .....
复制代码
public void add(int x,int ....arg){for(int a:arg){
System.out.println(a);
} //
   java.lang.NoSuchMethodException: superTest.reflact_test.add(int, int, int)
        at java.lang.Class.getMethod(Unknown Source)
        at superTest.ReflectTest.main(ReflectTest.java:41)



评分

参与人数 1技术分 +1 收起 理由
神之梦 + 1 加点文字说明吧

查看全部评分

2 个回复

倒序浏览
搞不懂,这么写编译都不通过。这代码怎么运行?

  1. <P> package reflact_test;
  2. import java.lang.reflect.*;</P>
  3. <P>public class ReflectTest {

  4. public void add(int...arg)//1.多加了一个 .和int x,
  5. {
  6.   for(int a:arg)
  7.   {
  8.   System.out.println(a);
  9.   }
  10. }
  11. public static void main(String[] args) throws Exception {
  12.   // TODO Auto-generated method stubint y,
  13.   // reflact_test rt=new reflact_test(4, 7,"abbc","bbbbbc");//2.包名?类名都写错了.
  14.   ReflectTest rt=new ReflectTest();
  15.   rt.add(1, 3, 4);
  16.   
  17.   //rt.getClass().getMethod("add", int.class,int.class,int.class).invoke(rt,1,3,4);    //报告没有这个方法,求解释一下咯。
  18. }
  19. }</P>
复制代码
回复 使用道具 举报
秦兰之 发表于 2013-7-17 23:59
搞不懂,这么写编译都不通过。这代码怎么运行?

我是说怎么反射那个可变参数的方法?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马