无法访问List中的元素:“表达式必须是数组类型”

时间:2013-01-04 23:07:29

标签: java list compiler-errors

我写了一个方法

public static final List<String> FooBar{

List<String> foobarlist = new ArrayList<String>();
 foobarlist.add("foo");
 foobarlist.add("bar");
 return foobarlist;

}

public static void man(String[] args){
   List<String> foobarlist = Foobar();
   String foo = foobarlist[0];<-- error here


}

我收到此错误

  

表达式的类型必须是数组类型,但它已解析为List

6 个答案:

答案 0 :(得分:5)

String foo = foobarlist.get(0);

老实说,你在这里发布的内容甚至都不会编译。我建议您无论如何都要清理那个部分。方法名称应该以Java中的小写字母开头,最后应该有parantheses。

public static final List<String> foobar() {

答案 1 :(得分:2)

使用

    String foo = foobarlist.get(0);

而不是

    String foo = foobarlist[0];

[..]符号仅允许用于不包含列表的数组。

答案 2 :(得分:1)

我看到的两个问题:

1。 方法声明中缺少括号:

public static final List<String> FooBar() {  // Although "foobar" / "fooBar"
                                             // would better follow naming
                                             // conventions (camelCase).

2。 使用get访问List个元素:

String foo = foobarlist.get(0);

答案 3 :(得分:1)

字符串数组允许您这样做:

String foo = fooBarArray[0];

但是,既然你在这里使用List,你需要使用它:

String foo = foobarlist.get(0);

这是因为List是一个容器类,而数组是......数组:P

答案 4 :(得分:1)

Java没有.net中描述的索引器。你必须使用方法get。试试这个:

String foo = foobarlist.get(0);

答案 5 :(得分:0)

由于foobarlist是List而不是数组,因此您无法通过[]访问列表中的元素。 您将需要使用foobarlist.get(0)来访问第一个元素,foobarlist.get(1)来访问第二个元素..依此类推。 看看数组和列表here

之间的区别