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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  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了???????
哥哥些来看看嘛

评分

参与人数 1技术分 +1 收起 理由
特殊服务 + 1

查看全部评分

2 个回复

正序浏览
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
然后又接着打印了这个方法的返回值。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马