Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在E[]temp=(E[])新对象[容量]中,“对象”是什么意思_Java_Arrays_Eclipse_Object_Generics - Fatal编程技术网

Java 在E[]temp=(E[])新对象[容量]中,“对象”是什么意思

Java 在E[]temp=(E[])新对象[容量]中,“对象”是什么意思,java,arrays,eclipse,object,generics,Java,Arrays,Eclipse,Object,Generics,我正在研究动态数组,我不确定对象对它意味着什么 protected void resize (int capacity) { E[] temp = (E[]) new Object[capacity]; for (int k = 0; k < size; k++) { temp[k] = data[k]; data = temp; } 干杯 它是所有其他东西都源自的根对象: 大多数IDE都允许您单击并查看实现ie ctrl+click-on对象,它将带您进入其定义 正

我正在研究动态数组,我不确定对象对它意味着什么

protected void resize (int capacity) {

E[] temp = (E[]) new Object[capacity];
for (int k = 0; k < size; k++) {
    temp[k] = data[k];
    data = temp;
}

干杯

它是所有其他东西都源自的根对象:

大多数IDE都允许您单击并查看实现ie ctrl+click-on对象,它将带您进入其定义


正在创建一个新的对象数组,然后将其转换为lame。

对象是Java中所有类的根。在本例中,它只是用于为存储在该数组中的任何对象的引用分配内存。您可以在该数组中存储任何类型的对象,并在运行时将其转换为另一种类型,如MyClass temp[3]

由于所有对象都扩展了对象,这只是创建了一个可以容纳任何内容的数组,所以我们一个接一个地复制数据的所有内容,而不管它们是什么类型,因为每个项都肯定会扩展对象。因为你不能实例化泛型类型,比如新的E[],你必须使用一个你可以实例化并转换为泛型的类型-我们可以实例化对象并安全地转换为E。

对象意味着对象类。在java中,中的所有其他类都继承自对象类。因此,这里您要声明任何java类型的数组

每个类都有对象作为超类,也就是说,即使您编写了如下内容:

class A {}
然后一个隐式扩展对象。因此,我们可以使用Object类型的变量来存储任何类型:

Object x = new SomeClass();
然后转换为阅读时需要的类型:

SomeClass someClass = (SomeClass) x;
现在,由于我们不能构造泛型数组,也就是说,我们不能创建新的t[],唯一的解决方案是构造一个可以包含任何类型数组new Object[]的通用数组,然后转换为我们需要的类型