java多维数组的反射类型_Java基础---反射Reflect-----Array

Array   java.lang.reflect   Array类提供了动态创建和访问 Java 数组的方法;

1、反射中数组类型的Class名称

public class SubClass extends ParentClass {

public static void main(String[] args) {

try {

String[] array = {};

System.out.println("一维数组 ----类型名称"+array.getClass().getName());

System.out.println("一维数组 ----权威名称"+array.getClass().getCanonicalName());

String[][] marray = {};

System.out.println("多维数组 ----类型名称"+marray.getClass().getName());

System.out.println("多维数组 ----权威名称"+marray.getClass().getCanonicalName());

} catch (Exception e) {

e.printStackTrace();

}

}

}

运行结果:

一维数组 ----类型名称[Ljava.lang.String;

一维数组 ----权威名称java.lang.String[]

多维数组 ----类型名称[[Ljava.lang.String;

多维数组 ----权威名称java.lang.String[][]

结论 : 三种叫法

"java.lang.String[]" style arrays

"[Ljava.lang.String;" style arrays

"[[I" or "[[Ljava.lang.String;" style arrays

2、Array类中方法

public static Object get(Object array, int index)

public static boolean getBoolean(Object array, int index)

public static byte getByte(Object array,int index)

public static char getChar(Object array,int index)

public static short getShort(Object array, int index)

public static int getInt(Object array,int index)

public static long getLong(Object array,int index)

public static float getFloat(Object array,  int index)

以上static方法用于反射中获取数组array指定索引index处的值,根据数组类型选择使用哪一个方法获取;

public static void set(Object array,int index,Object value)

public static void setBoolean(Object array,int index,boolean value)

public static void setByte(Object array,int index,byte value)

public static void setChar(Object array,int index,char value)

public static void setShort(Object array,int index,short value)

public static void setInt(Object array,int index,int value)

public static void setLong(Object array,int index,long value)

public static void setFloat(Object array,int index,float value)

public static void setDouble(Object array,int index,double value)

以上static方法用于改变数组array中索引位置为index的值为 value

public class SubClass extends ParentClass {

public static void main(String[] args) {

try {

String[] array = {"a","b"};

System.out.println("数组array的索引为1处的值---"+Array.get(array, 1));

Array.set(array, 1, "c");

System.out.println("数组array的索引为1处的值---"+Array.get(array, 1));

} catch (Exception e) {

e.printStackTrace();

}

}

}

数组array的索引为1处的值---b

数组array的索引为1处的值---c

public static int getLength(Object array)

获取数组array的长度

public static Object newInstance(Class> componentType, int length)

创建一个长度为length的componentType类型的数组

public static Object newInstance(Class> componentType,int... dimensions)

创建一个componentTyp类型的多维数组,数组每一维度的长度分别为... dimensions

public static void main(String[] args) {

try {

String[][] string =(String[][]) Array.newInstance(String[].class, 2);

System.out.println(string.length);

String[][][] multistring = (String[][][]) Array.newInstance(String.class, 1,1,1);

System.out.println(multistring.length);//第一维数组长度

System.out.println(multistring[0].length);//第二位数组长度

System.out.println(multistring[0][0].length);//第三位数组长度

} catch (Exception e) {

e.printStackTrace();

}

}

2

1

1

1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值