partypess[1] = String.class;
Constructor ct = clss.getConstructor(partypess);
Object arglists[] = new Object[2];
arglists[0] = new String("hello");
arglists[1] = new String("orange");
Object retobjs = ct.newInstance(arglists);
System.out.println("---------------------------------------------------------------------");
/**
* //改变属性的值
*/
Class ccc = Class.forName("com.xtlh.sinye.Goods");
Field fld = ccc.getDeclaredField("price");
Goods goods1 = new Goods();
System.out.println("price = " + goods1.price);
fld.setDouble(goods1, 25.0);
System.out.println("price = " + goods1.price);
System.out.println("---------------------------------------------------------------------");
/**
* //简单使用数组,创建了 10 个单位长度的 String 数组,为第 5 个位置的字符串赋了值,最后将这个字符串从数组中取得并打印了出来
*/
Class cla = Class.forName("java.lang.String");
Array.set(arr, 5, "hello Watermelon");
String s = (String) Array.get(arr, 5);
System.out.println(s);
System.out.println("---------------------------------------------------------------------");
/**
* //复杂数组使用,例中创建了一个 5 x 10 x 15 的整型数组,并为处于 [3][5][10] 的元素赋了值为 37。注意,多维数组实际上就是数组的数组,例如,第一个 Array.get 之后,arrobj 是一个 10 x 15 的数组。进而取得其中的一个元素,即长度为 15 的数组,并使用 Array.setInt 为它的第 10 个元素赋值。
注意创建数组时的类型是动态的,在编译时并不知道其类型。
*/
int dims[] = new int[]{5, 10, 15};
Object array = Array.newInstance(Integer.TYPE, dims);
Object arrobj = Array.get(array, 3);
Class cl = arrobj.getClass().getComponentType();
System.out.println(cl);
arrobj = Array.get(arrobj, 5);
Array.setInt(arrobj, 10, 37);
int arrcast[][][] = (int[][][]) array;
System.out.println(arrcast[3][5][10]);
}
}
作者“xSTARx”