1)我们应该提前知道尺寸,每次可能都不可能
示例1:声明具有大小的对象数组
class ObjectArrays { public static void main(String[] args){ Object[] a = new Object[10]; System.out.println(a[0]); } }
输出(描述)
在这里,对象数组的大小为10,并且我们正在打印对象数组的第一个元素,因此我们将获得null作为输出,因为Object []是一个Object,并且如果不提供任何值,则默认情况下Objects包含null。
E:\javasource>java ObjectArrays null
示例2:声明没有大小的对象数组
class ObjectArrays { public static void main(String[] args){ Object[] a = new Object[]; System.out.println(a[0]); } }
输出(描述)
在这里,对象数组没有大小,并且我们正在打印对象数组的第一个元素,因此我们将获得编译时错误,因为在Object []中,大小是强制性的,我们无法实例化没有大小的对象数组。
E:\javasource>javac ObjectArrays.java ObjectArrays.java:8: array dimension missing Object[] a = new Object[]; ^ 1 error
2)对象数组不能为每种需求提供支持的现成方法。(即程序员负责为这种要求编写逻辑)。
示例1:声明具有大小的对象数组
class ObjectArrays { public static void main(String[] args){ Object[] a = new Object[10]; System.out.println(a[0].add("A")); } }
输出(描述)
在此,add()
方法将提供错误,而它不提供现成的工具。
E:\javasource>javac ObjectArrays.java ObjectArrays.java:9: cannot find symbol symbol : method add(java.lang.String) location: class java.lang.Object System.out.println(a[0].add("A")); ^ 1 error
3)不建议使用明智的内存对象数组。
它可以容纳同质和异质元素,而其他数组只能容纳同质元素。
示例1:声明具有大小的对象数组
class ObjectArrays { public static void main(String[] args){ Object[] a = new Object[10]; a[0] = new Integer[10]; a[1] = new Boolean[10]; System.out.println(a[0]); System.out.println(a[1]); } }
输出(描述)
在此,对象数组可以容纳不同或相同类型的对象。在此程序中,对象类toString()
方法将以[电子邮件保护] _十六进制代码(即Integer; @ 360be0)的格式调用和打印输出。
E:\javasource>java ObjectArrays [Ljava.lang.Integer;@360be0 [Ljava.lang.Boolean;@45a877