Java数组对象转型

来源:互联网 发布:哥本哈根大学 知乎 编辑:程序博客网 时间:2024/05/16 05:33

同事在对数组进行转型时遇到了问题,在这里记录一下。


下面是示例代码:

public static void main(String[] args) {Object[] arr = new Object[2];Integer int1 = 1;arr[0] = int1;Integer int2 = 2;arr[1] = int2;System.out.println(arr[0].getClass().getName());// java.lang.IntegerSystem.out.println(arr.getClass().getName());// [Ljava.lang.Object;Integer int3 = (Integer) arr[0];// 可以转型System.out.println(int3);Integer[] intArr = (Integer[]) arr;// 不可以转型,异常:java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.Integer;System.out.println(intArr[0]);}

在这里做一下解释:

  • 数组是Java中的一种基本类型,可以指定数组元素的类型,指定之后不能再修改。
  • 数组存了各个元素的引用,没有赋值或初始化的元素则为null。
  • 可以对数组中的元素向下转型,但不能对数组对象做向下转型。

0 0
原创粉丝点击