【问题标题】:Can't access element in List: "expression must be an array type"无法访问列表中的元素:“表达式必须是数组类型”
【发布时间】:2013-01-04 23:07:29
【问题描述】:

我写了一个方法

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

【问题讨论】:

  • 鉴于错误消息,我不确定问题是什么。编译器是正确的。返回并查看有关 List 对象如何工作的假设。另外,尝试 searching - 例如[java] expression must be an array type.
  • 仅供参考,您应该以小写字母开头。

标签: java list compiler-errors


【解决方案1】:
String foo = foobarlist.get(0);

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

public static final List<String> foobar() {

【讨论】:

    【解决方案2】:

    使用

        String foo = foobarlist.get(0);
    

    而不是

        String foo = foobarlist[0];
    

    [..] 表示法仅适用于数组,不适用于列表。

    【讨论】:

      【解决方案3】:

      一个字符串数组可以让你这样做:

      String foo = fooBarArray[0];

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

      String foo = foobarlist.get(0);

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

      【讨论】:

        【解决方案4】:

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

        String foo = foobarlist.get(0);
        

        【讨论】:

          【解决方案5】:

          我看到的两个问题:

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

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

          2。 使用get 访问List 元素:

          String foo = foobarlist.get(0);
          

          【讨论】:

            【解决方案6】:

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

            【讨论】:

              猜你喜欢
              • 2012-04-20
              • 2018-08-14
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2021-07-24
              • 2019-10-25
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多