我收到以下错误:
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
}
为什么会这样?
答案 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
不是数组,但[]
表示法仅适用于数组类型。
您可能只需要保存并重新编译。