Java - 是否可以子类化数组?关于Java中的数组的更多问题

Tim*_*Tim 4 java arrays

这些问题纯粹是出于好奇而被问到的.我实际上并不需要子类化数组,我只是想弄清楚它们如何在Java中工作.

  1. 阵列的Javadoc API在哪里?我找到了一个'Arrays'类,但该类只包含在Java数组上使用的实用程序,而不是实际的数组类.这引出了我的下一个问题:

  2. 是否有一个实际的数组类,其中所有数组都是子类?

  3. 是(例如)Object[]的超类String[]吗?我猜这里的答案是否定的.这些实际的课程和其他课程一样吗?

  4. String[]一个不同的类String[][]?或者String[][][],等等?

  5. 正如标题中所要求的那样,是否有可能对数组类进行子类化(或者对数组类进行子类化?仍然不确定它是如何工作的,因为你可以通过上面的问题来判断)?我可以创建自己的类,其实例与数组完全相同,除非它们具有更多功能吗?

谢谢.

mer*_*ike 7

Java语言规范回答了所有这些问题:

数组类型的直接超类是Object.每个数组类型都实现了Cloneable和java.io.Serializable接口.

所以不,所有数组都没有通用的基类,因此也没有JavaDoc.数组的成员由规范定义.

数组类型之间的子类型在4.10.3节中定义- 是的,String[]是子类型Object[].另请参见ArrayStoreException.

是的,String[].class != String[][].class.(参见第10.8节)

不,没有语法来子类化数组.特别是,extends子句必须包含类类型(并且数组类型不是类类型).