本帖最后由 王宝龙 于 2012-10-5 16:12 编辑
第18行:String startingClassName = args[0];这一行代码没有搞懂是干什么的?
而且这个程序 在我Eclipse上运行会报ArrayIndexOutOfBoundsException
不知道哪里的问题?
- import java.lang.reflect.Constructor;
- import java.lang.reflect.Field;
- import java.lang.reflect.Method;
- public class ReflectTest
- {
- public static void main(String[] args) throws Exception
- {
- Constructor constructor1 = String.class.getConstructor(StringBuffer.class);
- String str2 = (String)constructor1.newInstance(new StringBuffer("abc"));
- System.out.println(str2.charAt(2));
-
- Method methodCharAt = String.class.getMethod("charAt", int.class);
- System.out.println(methodCharAt.invoke(str2,1));
-
- String startingClassName = args[0];//这里的args[0]不明白是干什么的
- Method mainMethod = Class.forName(startingClassName).getMethod("main", String[].class);
- mainMethod.invoke(null,(Object)new String[] {"111","222","333"});
-
- mainMethod.invoke(null,new Object[]{new String[] {"111","222","333"}});
- }
- }
- class TestArguments
- {
- public static void main(String[] args)
- {
- for(String arg : args)
- {
- System.out.println(arg);
- }
- }
- }
复制代码 |