0

基本上我有两个代码片段。一个调用一个填充并返回一个的函数ArrayList,但我遇到了一些问题。下面是两个代码:

  1. 定义接收ArrayList,然后捕获返回ArrayList

    ArrayList agentArray = new ArrayList<>(); agentArray = agentListings(strInput);

  2. 构建 ArrayList 然后返回它。

    public static ArrayList agentListings(String strInput) throws FileNotFoundException {
         File inputFile = new File(strInput);
         Scanner in = new Scanner(inputFile);
         ArrayList<String> agentArray = new ArrayList<>();
    
         while (in.hasNextLine()) {
             agentArray.add(in.next());
             in.next();
             in.next();
             in.next();
         }
    
         Collections.sort(agentArray);
         in.close();
         return agentArray;
     }
    

问题是当我回到我试图将它放入ArrayList曾经返回的地方时,它似乎工作正常。但是当我尝试将其写入文件时,它会从此代码中引发此错误。

out.write(agentArray.get(1)); 

我正在写入一个文件,而不是使用简单文本等的缓冲写入器。

基本上我不知道如何将 ArrayList“agentArray”写入文件。我在做什么明显的错误?

===============================================

编辑: 忘记包含错误。当我将鼠标悬停在out.write(agentArray.get(1));带有agentArray红色下划线的 get 上时,错误是

找不到符号符号:变量agentArray
位置:类blabla.blabla

4

2 回答 2

2

如果您收到这样的错误:

cannot find symbol symbol: varible agentArray
location: class blabla.blabla

1)这是一个编译错误,所以你甚至不应该尝试运行你的程序。

2)错误消息实际上告诉你问题是什么......如果你从编译器的角度考虑它。它是这样说的:

“此时在代码中,我查找了 的范围内声明agentArray,但找不到。我没有尝试查找不在范围内的声明,因为它们无法使用,而我读不懂你的心思……”

现在,我们无法确切地看到问题出在哪里,因为您只向我们展示了片段,而不是与它们相关的代码。但是,假设您了解基本的 Java 范围规则,您应该能够弄清楚。


当您发布错误消息时,您应该剪切并粘贴真正的错误消息,而不是一些删节/ baudlerized/mangled 版本。如果您希望人们花时间回答,您应该花时间适当地提问。

于 2012-05-20T03:05:35.237 回答
0

Maybe add a type when declaring agentArray outside your method

ArrayList<String> agentArray = new ArrayList<>(); agentArray =agentListings(strInput);
于 2015-02-04T05:26:12.587 回答