【问题标题】:How to return an arrayList of Strings [closed]如何返回字符串的arrayList [关闭]
【发布时间】:2012-11-22 17:55:17
【问题描述】:

我正在尝试返回一个 userData 的 ArrayList,它是数据库中所有用户的用户名。我一直在尝试返回 ArrayList 时遇到错误。有人可以帮忙吗?

import java.util.*;
import java.io.*;
import java.util.ArrayList;

public class readCSV
{
    List<String[]> userData = new ArrayList<String[]> ();
    public void checkLogin() throws IOException
    {
        try
        {
            File file = new File("C:/Users/Sean/Documents/Programming assigment/Users.csv");
            BufferedReader bufRdr  = new BufferedReader(new FileReader(file));      
            String lineRead = bufRdr.readLine();
            while(lineRead != null)
            {
                ArrayList<String> list = new ArrayList<String>();
                while(lineRead != null)
                {
                    this.userData.add (lineRead.split(","));
                }
                bufRdr.close();
            }
        }
        catch(Exception er){
            System.out.print(er); 
            System.exit(0);
        }
    }

    public String[] getLogin()
    {
        return userData;
    }
}

错误不兼容类型

【问题讨论】:

  • “我不断收到错误” - 总是在您的问题中显示错误。请阅读tinyurl.com/so-hints
  • 数据库在哪里?我没有看到任何 JDBC。
  • 公开列表 getLogin()
  • 另外,作为记录,ArrayList&lt;String[]&gt;ArrayListString arrays,而不是 Strings。根据您对问题的描述,您可能希望使用ArrayList&lt;String&gt;

标签: java string arraylist


【解决方案1】:
public String[] getLogin()

返回类型是String[],而你返回的是List&lt;String[]&gt; -

return userData;  // userData is `List<String[]>`

您需要将方法签名更改为:-

public List<String[]> getLogin()

【讨论】:

  • @user1323808.. 也请在以后的评论中遵循 Jon Skeet 的建议。总是显示你出错的地方。如果出现异常,请发布 Stack Trace。它总是有帮助的。 :)
【解决方案2】:

您需要检查getLogin() 方法的返回类型。它返回 List&lt;String[]&gt; 而不是 String[]。相应地更改返回类型。

【讨论】:

  • @istovatis.. 哇!你来晚了一点。您仍然可以在答案中添加更多描述,以使其成为可以接受的答案。 :)
  • 要在代码周围添加代码标签,您可以在它们之前和之后添加反引号。 1 键左侧的键。
猜你喜欢
  • 2021-02-03
  • 2014-03-14
  • 2018-05-13
  • 1970-01-01
  • 2014-08-19
  • 2015-12-03
  • 1970-01-01
  • 2013-05-13
  • 1970-01-01
相关资源
最近更新 更多