【问题标题】:Java ArrayList - Return ArrayListJava ArrayList - 返回 ArrayList
【发布时间】:2012-05-27 01:02:00
【问题描述】:

基本上我有两个 sn-ps 代码。有人调用一个填充并返回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 会以红色下划线显示,错误是

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

【问题讨论】:

  • 错误是什么?你知道,错误通常会提供很多信息。
  • 我假设您想将字符串作为文本行写入文件中?如果是这样,您应该能够制作某种 Reader 和 Writer 来获取字符串,然后将它们一一添加到文本文件中。在尝试将其内容写入文件之前,您是否确保您的 arraylist 确实获得了内容?
  • 什么是错误,你真的确定你填写了 ArrayList 正确吗?您是否控制了其中的值?尝试使用 print.out 写出 ArrayList 中的值或使用调试控制。
  • 一开始为什么要新建一个ArrayList ();哪个从未使用过,但会立即被方法调用的结果覆盖? out.write 在哪里?如果连接到返回的List,我们从代码中是看不到的。

标签: java file io arraylist


【解决方案1】:

如果您收到这样的错误:

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

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

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

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

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


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

【讨论】:

    【解决方案2】:

    在你的方法之外声明 agentArray 时可能会添加一个类型

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-01-29
      • 2016-02-22
      • 1970-01-01
      • 2012-08-29
      • 2013-08-21
      • 2016-07-21
      • 1970-01-01
      相关资源
      最近更新 更多