我正在尝试创建一个Java对象数组并将数组置于其第二个索引中(为了表示与数组的自相似分形),但是当我尝试访问时theArray[1][1][0],我收到此错误:
Main.java:11: error: array required, but Object found.
这是我到目前为止所尝试的,我不确定为什么它不起作用:
import java.util.*;
import java.lang.*;
class Main
{
public static void main (String[] args) throws java.lang.Exception
{
Object[] theArray = new Object[2];
theArray[0] = "This array should contain itself at its second index.";
theArray[1] = theArray; //Now I'm attempting to put the array into itself.
System.out.println(theArray[1][1][0]) //Main.java:11: error: array required, but Object found
}
}
Run Code Online (Sandbox Code Playgroud)
实际上是否可以在自己内部放置一个Java数组,就像我试图在这里做的那样?
SLa*_*aks 19
theArray[1]是编译时类型Object(因为它来自一个对象数组).
您需要将其强制转换Object[]为将其用作数组.
您遇到的基本问题是,虽然包含自身的数组是完全有效的对象,但它不是有效类型.
您可以任意深入嵌套数组类型 - Object[][][][][][][][][][][][][]是有效类型.
但是,该类型的"底层"不能是一个数组.
您正在尝试创建一个自身数组的类型.
使用泛型,这是可能的:
class Evil extends ArrayList<Evil> { }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1192 次 |
| 最近记录: |