java反射 String数组
2012-11-06 14:14
435 查看
public class Test { public static void main(String[] args) throws ClassNotFoundException, SecurityException, NoSuchMethodException, IllegalArgumentException, IllegalAccessException, InvocationTargetException { Method m= Test.class.getMethod("wish", String.class,String.class,String.class); m.invoke(null, new String[]{"1","2","3"}); //1.由于方法有多个参数,在这里面,把这三个参数用数组的形式给出 m.invoke(null, new String("a"),new String("b"),new String("c")); //2.这里也可以不用数组的形式给出 } public static void wish(String str1,String str2,String str3) { System.out.println(str1); System.out.println(str2); System.out.println(str3); } } 但是如果我们要在把wish方法中参数改成时一个数组,该如何进行反射呢?如下: public class Test { public static void main(String[] args) throws ClassNotFoundException, SecurityException, NoSuchMethodException, IllegalArgumentException, IllegalAccessException, InvocationTargetException { Method m= Test.class.getMethod("wish", String[].class); //m.invoke(null, new String[]{"1","2","3"});这种方法是不行的 //因为new String[]{"1","2","3"},程序会看做是wish方法有3个参数,类型都是string的,而不是把这个数组看做是一个参数 m.invoke(null, (Object)new String[]{"1","2","3"}); //1.强制转换 m.invoke(null, new Object[]{new String[]{"1","2","3"}}); //2.用超类的数组形式,new String[]{"1","2","3"}作为参数数组的第一个元素; //这李说明,我们在写参数的时候,都可以写成数组的形式。 } public static void wish(String[] strs) { for(String str:strs) { System.out.println(str); } } }
相关文章推荐
- java 张孝祥(12) 通过反射将String写入Integer的数组中。
- 黑马程序员-Java基础(数组,String,StringBuffer,正则表达式)
- java 判断string数组中是否有某个字符串
- Java 通过反射原理,通过Map转为Java POJO对象,适用于对象包含List,Map,数组等
- java运用反射来创建并操作数组
- 详解java中反射机制(含数组参数)
- wrong number of arguments,java方法反射时数组参数的坑
- java String[]字符串数组自动排序的简单实现
- Java中,利用反射机制修改定义出来的String对象本身。
- JAVA里面关于byte数组和String之间的转换问题
- java基础知识回顾之---java String final类普通方法的应用之字符串数组排序
- JAVA中Reflection(反射)三种方法forName(String className) 方法最好
- java中的String.split() 中“|”作为分隔符的问题和数组长度问题
- Java反射之Method Class.getMethod(String name, Class<?>... parameterTypes)
- Java反射学习-使用反射修改一个类中的所有String类型的成员变量的值
- Java反射获取基本类型、包装类型、String对象类型的字段值
- java 数组 、 for each循环, 数组的两种拷贝方法 ,Arrays.copyOf(),Arrays.toString[],匿名数组
- java中byte数组和String字符串怎么相互转换?(string 转 byte[]和byte[] 转 string)
- 使用JAVA反射初始化数组(转)
- 黑马程序员_Java高新技术之反射 数组的反射