package net.peace.ref; import java.lang.reflect.Array; import java.util.Arrays; import java.util.function.IntPredicate; public class TestArray { public static void main(String[] args) { // TODO Auto-generated method stub try { Class c=Class.forName("java.lang.String"); //数组对对象的构建 Object str=Array.newInstance(c, 10);//第一个参数建立的类别。第二个参数建立的数组长度以及维数;多维在下面演示 //打印看是否得到想要的数组 Class cstr=str.getClass(); System.out.println(cstr.getName()); //给数组给定的索引赋值,此去索引为0 Array.set(str, 0, "peace"); //获得数组给定索引的值 String ss=(String)Array.get(str, 0); System.out.println(ss); //可以转换为真正的数组; String[] string=(String[])str; System.out.println(string[0]); /* * 下面进行array的多维演示 */ //建立维数参数,数组的长度为维数,数组的值为建立的单个维数长度 int[] inta=new int[]{5,6,9}; //将数组当为第二个参数传入;获得三维数组 相当于a[5][6][9] Object threeInt=Array.newInstance(Integer.TYPE, inta); //打印看是否得到想要的数组 Class cint=threeInt.getClass().getComponentType(); System.out.println(cint.getName()); //获得二维数组相当于 a1[6][9]=a[3] Object twoInt=Array.get(threeInt, 3); //获得一维数组相当于 a2=a1[5] Object oneInt=Array.get(twoInt, 5); //对一维数组进行赋值 a2[3]=10 Array.set(oneInt,3,10); //打印验证 int[][][] aint=(int[][][])threeInt; System.out.println("[3][5][3]="+aint[3][5][3]); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }