自己的一个例子讲解一下反射调用静态方法
这里以String.join()方法举例将 String[] arr= {“I”,“came”,“from”,“Laifeng”,“in”,“Hubei”,“Enshi,”,
“which”,“is”,“a”,“small”,“developing”,“town”};这个数组变成一个正常的句子
//将数组通过Arrays类方法转成集合
List asList = Arrays.asList(arr);
//此方法需要些String类里的静态join方法和实现方法该功能需要的两个参数类型
Method method = c.getDeclaredMethod(“join”, CharSequence.class,Iterable.class);
//下面是String类的底层join方法代码
public static String join(CharSequence charsequence, Iterable iterable)
//谨记需要按照使用方法的功能依次将参数的类型写进去才可以 !
//靜態方法的調用,Object對象傳入null值
Object invoke = method.invoke(null,(CharSequence)" ",(Iterable)asList);
System.out.println(invoke);
整体代码如下:
String[] arr= {"I","came","from","Laifeng","in","Hubei","Enshi,",
"which","is","a","small","developing","town"};
List<String> asList = Arrays.asList(arr);
Method method = c.getDeclaredMethod("join", CharSequence.class,Iterable.class);
//靜態方法的調用,Object對象傳入null值
Object invoke = method.invoke(null,(CharSequence)" ",(Iterable)asList);
System.out.println(invoke);