0

如果我这样声明 x int[] x,那么x它就是一个对象,不是吗?哪个int[]是类?

我可以扩展该课程(出于各种原因)吗?我试过了

class Foo extends int[]
{
}

但这行不通。任何想法?

谢谢

4

4 回答 4

1

您不能在 Java 中扩展数组。它们是这些奇怪的伪类事物,它们的行为有点类似于对象(具有方法/字段等),但实际上并非如此。如果您正在尝试制作自定义数组,您是否查看过 Collections API?这包括诸如 ArrayLists(可变长度的数组)之类的东西,它们非常有用。

编辑:如果您需要一个数组,请使用所有集合都有的“toArray()”方法。

于 2013-04-03T20:31:38.800 回答
0

Anint[]实际上是一个数组。它本身不是一个对象,而是一个能够保存许多相同类型的值并允许基于索引快速访问它们的变量。

有趣的是,Oracle 的文档将数组(位于变量类别下)描述为:

数组是一个容器对象,它包含固定数量的单一类型的值。数组的长度是在创建数组时确定的。创建后,它的长度是固定的。您已经在“Hello World!”的 main 方法中看到了一个数组示例。应用。本节更详细地讨论数组。

int[]它不是一个实际的类类型,所以你没有办法扩展它。如果您真的需要这样做,您可以扩展任何实现List接口的对象(ArrayList例如),或者您List自己使用自定义对象实现接口。

如果要将集合转换为数组,请尝试以下操作:

List<Integer> intList = new ArrayList<Integer>();
//Operate with your list
Integer[] arr = intList.toArray(new Integer[intList.size()]);
于 2013-04-03T20:39:27.007 回答
0

您不能在 Java 中扩展 int[] 或任何其他数组。它是对象,但不能像 java 中的普通类那样扩展。

int 是原始的,您使用 int[] 创建整数数组

JComponent 是类,您使用 JComponent[] 创建 JComponents 数组

您可以扩展 JComponent 类或任何其他非最终类,并通过将 [] 添加到变量声明的末尾来创建这些数组。

class Foobar { .... }

Foobar foobar = new Foobar();
Foobar[] foobarArray = new Foobar[10]; // size 10

class BiggerFoobar extends Foobar {...}

BiggerFoobar[] biggerFoobarArray = new BiggerFoobar[5];
于 2013-04-03T20:37:16.613 回答
-1

int 是一种数据类型,而不是对象。整数是一个对象,但是你也不能扩展它,因为它是最终的。

我认为您可能需要重新考虑您正在尝试做的究竟是什么,可能有不同的方式。

于 2013-04-03T20:30:57.933 回答