数组必需,但java.lang.String发现Java类数组错误

时间:2014-01-06 05:41:28

标签: java arrays object instance

我收到以下错误:

array required, but java.lang.String found

我不知道为什么。

我想要做的是将一个对象的实例(我相信这是正确的术语)放入该类型(对象的)类的数组中。

我有课:

public class Player{
     public Player(int i){
           //somecodehere
     }
}

然后在我的main方法中我创建了一个实例:

static final Player[] a = new Player[5]; // this is where I'm trying to create the array.
public static void main(String[] args){
     Player p = new Player(1);
     a[0] = p; //this is the line that throws the error
}

为什么会这样?

1 个答案:

答案 0 :(得分:4)

在你的代码中,我发现错误的唯一方法就是你真的有

static final Player[] a = new Player[5]; // this is where I'm trying to create the array.
public static void main(String[] args){
    String a = "...";
    Player p = new Player(1);
    a[0] = p; //this is the line that throws the error
}

在这种情况下,您的本地变量a会隐藏同名的static变量。数组访问表达式

a[0]
因此,

会导致编译错误,如

Foo.java:13: error: array required, but String found
                a[0] = p; // this is the line that throws the error

因为a不是数组,但[]表示法仅适用于数组类型。

您可能只需要保存并重新编译。