JDK 5.0(Tiger)中的一些新特性(3):可变参数
程序员文章站
2022-07-12 13:27:21
...
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"});
上一篇: java笔记(06,static关键字)
下一篇: java反射技术