《黑马程序员》反射 数组参数的自动拆箱
2011-07-21 01:20
204 查看
启动java程序的main方法的参数是一个字符数组,即public static void main(String args[]),通过反射方式来调用main方法遇到的问题以及解决方案:
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; public class Test3 { /** * @param args * @throws NoSuchMethodException * @throws SecurityException * @throws InvocationTargetException * @throws IllegalAccessException * @throws IllegalArgumentException * @throws ClassNotFoundException */ public static void main(String[] args) throws SecurityException, NoSuchMethodException, IllegalArgumentException, IllegalAccessException, InvocationTargetException, ClassNotFoundException { // TODO Auto-generated method stub String str=args[0]; Method m=Class.forName(str).getMethod("main", String[].class); m.invoke(null, new Object[]{new String[]{"111","222","333"}});//静态方法调用前面传入空值即可 //这里注意jdk1.5有了自动拆箱功能如果你后面是一个数组,它会自动将数组拆开,所以你要手动把String数组包上 //拆的时候,剩下了string数组 } }除了上述代码的处理方案外,还有一种方案,即把整个数组当做Object使用,这时调用代码可改为:
m.invoke(null, (Object)new String[]{"111","222","333"});这时的jdk将其拆开以后正好是一个String数组。
相关文章推荐
- 加强eclipse的使用技巧。可变参数。基本数据类型自动装箱和拆箱。枚举。反射。数组反射的应用。ArrayList和HashSet。JavaBean
- 黑马程序员_温习 高新技术一 (个人笔记)摘要(静态导入---可变参数----高级FOR循环---自动装箱(拆箱)----枚举----反射)
- Java基础---基础加强---增强for循环、自动拆装箱及享元、枚举的作用、实现带有构造方法、透彻分析反射的基础_Class类、成员变量的反射、数组参数的成员方法进行反射、数组的反射应用
- Java基础---基础加强---增强for循环、自动拆装箱及享元、枚举的作用、实现带有构造方法、透彻分析反射的基础_Class类、成员变量的反射、数组参数的成员方法进行反射、数组的反射应用
- 自动装箱和拆箱 枚举 反射 数组反射的应用。ArrayList和HashSet
- 静态导入-可变参数-增强for循环-基本数据类型的自动拆箱与装箱
- JAVA JDK1.5新特性<静态带入、可变参数、增强For循环、自动装箱及自动拆箱>
- 黑马程序员——Java1.5新特性之享元模式、增强for循环、可变参数、静态导入、自动装箱和拆箱
- 反射学习--对接收数组参数的成员方法进行反射
- java反射获得参数是数组的方法的两种方法
- java - 增强for循环 - 自动装箱/拆箱 - 可变参数 - 静态导入
- 增强for循环、可变参数、枚举、装箱/拆箱 反射 内省 beanutil(date)
- 1.5新特性静态导入、增强for、可变参数、自动装箱拆箱、枚举
- 对接收数组参数的成员方法进行反射.avi
- 可变参数与自动拆箱和自动装箱
- 关于反射带有数组参数的方法的调用(main)
- 可变参数、自动装箱与自动拆箱
- 有数组参数的方法的反射调用
- 黑马程序员_高新技术:1)eclipse的使用技巧_可变参数_增强for循环_基本数据类型的自动拆箱与装箱
- JDK1.5新特性:静态导入、可变参数、增强for循环、自动装箱拆箱(享元设计模式)、枚举、注解、泛型、