JDK 5.0(Tiger)中的一些新特性(3):可变参数
Last modified:2013-04-06 23:54:59
**********************************
5.0中引入了可变参数:
invoke(Object obj,Object... args)
1.4中使用的还是数组:
invoke(Object obj ,Object[] args)
为了兼容1.4版本,如果在向invoke中传入的对象是一个数组类型的时候,我们要么再加一层数组嵌套,要么利用强制转换告诉jvm这里是一个对象。
因为如果没有特殊处理的话,jvm将按照1.4的方法处理,即把数组拆开!
MethodCharAt.invoke(str,new Object[]{new int[]{2}});
MethodCharAt.invoke(str,(Object)new int[]{2});
main方法是一个特殊的方法,他是一个静态的方法,他是执行代码的入口。
那么我们可以在一个类中调用另一个类的main方法:
通常这样做:如果我们自定义了一个接受参数的类Temp,
那么:
Temp.main(new String[]{"111","222","333"});
利用反射我们可以这样做:
Method mainMethod = Class.forName(cn.itcast.day1.Temp).getMethod("main",String[].class);
mainMethod.invoke(null,(Object)new String[]{"111","222","333"});
本文介绍了 JDK 5.0 (Tiger) 中引入的可变参数特性,对比了与 JDK 1.4 版本中数组传递方式的不同,并展示了如何通过反射机制调用带有可变参数的方法。
110

被折叠的 条评论
为什么被折叠?



