package com.langsin.reflection;
import java.lang.reflect.Method;
public class InvokeTest {
public int add(int a,int b){
return a+b;
}
public String eoch(String s){
return "eoch "+s;
}
public static void main(String[] args) throws Exception{
Class<?> classType = InvokeTest.class;
Object object = classType.newInstance();
Method addMethod = classType.getMethod("add", new Class[]{int.class,int.class});
Object result = addMethod.invoke(object, new Object[]{new Integer(100),new Integer(223)});
System.out.println(result.toString());
Method eochMethod = classType.getMethod("eoch", new Class[]{String.class});
Object result2 = eochMethod.invoke(object, new Object[]{"sdf"});
System.out.println(result2.toString());
}
}
package com.langsin.reflection;
import java.lang.reflect.Array;
//一维数组
public class ArrayTest1 {
public static void main(String[] args) throws Exception {
Class<?> stringArray = Class.forName("java.lang.String");
Object array = Array.newInstance(stringArray, 10);
Array.set(array, 5, "hello");
Object value = Array.get(array, 5);
System.out.println(value.toString());
}
}
package com.langsin.reflection;
import java.lang.reflect.Array;
/**
* 三维数据,在[3][5][8]位置设置值97
*/
public class ArrayTest2 {
public static void main(String[] args) {
int[] dim = { 5, 7, 10 };
Object array = Array.newInstance(Integer.TYPE, dim);
//得到一个二维数组
Object object1 = Array.get(array, 3);
System.out.println(object1.getClass().getComponentType());
//得到一个一维数组
Object object2 = Array.get(object1, 5);
System.out.println(object2.getClass().getComponentType());
Array.setInt(object2, 8, 97);
int[][][] arrayCast = (int[][][]) array;
System.out.println(arrayCast[3][5][8]);
}
}