0

我写了一个方法

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

4

6 回答 6

5
String foo = foobarlist.get(0);

老实说,您在此处发布的内容甚至都无法编译。无论如何,我建议您清理该部分。方法名称应以 Java 中的小写字母开头,最后应有括号。

public static final List<String> foobar() {
于 2013-01-04T23:08:58.610 回答
2

利用

    String foo = foobarlist.get(0);

代替

    String foo = foobarlist[0];

[..] 表示法只允许用于数组而不用于列表。

于 2013-01-04T23:09:17.720 回答
1

我看到的两个问题:

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

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

2. List元素通过以下方式访问get

String foo = foobarlist.get(0);
于 2013-01-04T23:09:49.757 回答
1

字符串数组将允许您执行此操作:

String foo = fooBarArray[0];

但是,由于您在此处使用 List,因此您需要使用它:

String foo = foobarlist.get(0);

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

于 2013-01-04T23:11:33.433 回答
1

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

String foo = foobarlist.get(0);
于 2013-01-04T23:13:23.993 回答
0

由于 foobarlist 是 List 而不是数组,因此您无法通过 [] 访问列表的元素。您将需要使用 foobarlist.get(0) 来访问第一个元素,使用 foobarlist.get(1) 来访问第二个元素......等等。在这里查看数组和列表之间的区别

于 2013-01-04T23:14:57.977 回答