反射调用main方法注意事项
2014-04-11 10:34
351 查看
尽管在通过反射调用一个类的main方法是,获取main方法与获取普通方法一样的步骤,但是在调用main方法,传递参数时需要注意。
一:
二:
public class MainRef { public static void main(String[] args) throws Exception{ Method method =MainArguments.class.getMethod("main",String[].class); //这种写法会出粗 //method.invoke(null, new String[]{"1","2","3"}); } } class MainArguments{ public static void main(String[] args) { for(String s:args){ System.out.println(s); } } }代码中注释掉的那句,按道理没错啊。main方法接收的不就是一个字符串数组么,但是jdk的语法为了向上兼容,我们在把一个字符串数组传递过去的时候,系统会默认认为我们是把参数包裹成一个数组传递过去,得到该数组后,它会把数组按内容进行分割,这样说来,我们代码中传递过去得其实就是三个字符串了,所以会报错。解决办法:
一:
method.invoke(null, new Object[]{new String[]{"1","2","3"}});这样我们把数组包裹进数组,系统获得之后将Object数组拆开,发现是个String数组,就把它当做main方法的参数执行。
二:
method.invoke(null, (Object)new String[]{"1","2","3"});将String字符串强转为Object,这样main方法接收到,一看是一个对象,就不会再进行拆分,则可将该字符串数组传递过去。
相关文章推荐
- Java中通过反射调用其他类中的main方法时要注意的问题
- Java中通过反射调用其他类中的main方法时要注意的问题
- java中用反射调用其他类的main方法时应注意的问题
- 反射中用Type.GetType 方法 (String) 动态创建类的注意事项
- java反射main方法注意点。
- 调用平台删除选择行数据方法注意事项
- VC++调用Web Service的方法及注意事项
- python2,python3子类调用父类初始化函数的方法和注意事项
- 黑马程序员-反射调用其他类main方法
- 动态编译_DynamicCompile、反射调用main方法问题JAVA214
- MFC 线程调用方法和注意事项
- java 中使用ajax调用后台方法注意事项
- SSH框架整合时applicationContext.xml的配置,关于在main方法中测试注意的事项
- Jquery调用C#后台方法注意事项
- 黑马程序员java高新技术篇----通过反射调用main方法
- java反射main方法参数注意
- 利用反射调用方法时,处理ref,out参数需要注意的问题
- 脚本调用的方法及注意事项
- 关于java调用对象,方法的注意事项
- Jquery调用C#后台方法注意事项