黑马程序员技术交流社区

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

作者: 蓬头小道士    时间: 2015-8-14 22:07
标题: 反射问题
程序如下:
import java.lang.*;
class ReflectTest
{
public static void main(String[] args)
{
  String mainName=args[0];
  Method method =Class.forName(mainName).getMethod("main",String[].class);
  method.invoke(null,new Object[]{new String[]{"a","b","c"}});
}
}
class mainTest
{
public static void main(String[] args)
{
  for(String arg:args)
  {
  System.out.println(arg);
  }
}
}
程序中红色部分为什么要把new String["a","b","c"]放入new Object[]{}中,getMethod的类型不就是String[]吗?



作者: pengbeilin    时间: 2015-8-15 00:19
要从类型 Method 中调用 varargs 方法 invoke(Object, Object...),应该将类型为 String[] 的参数显式地强制转换为 Object[]。对于 varargs 调用来说,也可以将 其强制转换为 Object
eclipse给了一句这样的话!求解释!




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