黑马程序员技术交流社区

标题: 关于对接收数组参数的成员方法进行反射的一个问题 [打印本页]

作者: Ysfox    时间: 2013-7-21 01:08
标题: 关于对接收数组参数的成员方法进行反射的一个问题
  1. import java.lang.reflect.*;
  2. class ReflectDemo5
  3. {
  4.         public static void main(String[] args)throws Exception
  5.         {
  6.                 String testString = args[0];
  7.                 Method method = Class.forName(testString).getMethod("main",String[].class);
  8.                 System.out.println(method.invoke(null,new Object[]{new String[]{"haha","hehe","heihei"}}));
  9.         }
  10. }
  11. class TestArguments
  12. {
  13.         public static void main(String[] args)
  14.         {
  15.                 for(String str : args)
  16.                 {
  17.                         System.out.println(str);
  18.                 }
  19.         }
  20. }
复制代码
如果你要测试请在运行时向主函数传入TestAruguments
测试结果为
haha
hehe
heihei
null
我的问题就是这个null是怎么出来的
经过为测试
如果把
System.out.println(method.invoke(null,new Object[]{new String[]{"haha","hehe","heihei"}}));
改为
method.invoke(null,new Object[]{new String[]{"haha","hehe","heihei"}})
则就不会出现null
现在我想知道为什么我加上了System.out.println()之后就出现了null了???????
哥哥些来看看嘛
作者: wedge    时间: 2013-7-21 07:55
method.invoke(null,new Object[]{new String[]{"haha","hehe","heihei"}})返回的Object为null
本身这个方法method.invoke(null,new Object[]{new String[]{"haha","hehe","heihei"}}),就是打印
haha
hehe
heihei
然后又接着打印了这个方法的返回值。





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