JAVA反射学习(2)

?
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]);}}?
?





?

?

?
