我写了一个方法
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
答案 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
之间的区别