如何将Arraylist(对象)转换为Arraylist(String),以便我可以使用.add方法

时间:2017-09-09 15:28:54

标签: java arraylist

我正在尝试编写一段代码,允许我通读文本文件,然后返回该列表。但是,当我尝试添加文本文件的下一行时,会出现错误,不断将.add切换为.addAll,然后尝试恢复为.add。我假设这是因为我的ArrayList不是一个字符串,那么我如何转换我的ArrayList以便可以读取和添加它的内容?

private ArrayList<Patron> patronList = new ArrayList<Patron>();
private ArrayList<Patron> readPatrons(String filename) {
        ArrayList<Patron> lines = new ArrayList<>();
        Scanner s = null;
        File infile = new File(filename);
        try{
            s = new Scanner(infile);
        } catch (FileNotFoundException e){
            e.printStackTrace();
        }
        while(s.hasNext())
            lines.add(s.next()); // Error here. 
        return lines;

3 个答案:

答案 0 :(得分:1)

你可以在其中创建一个Patron对象和一个构造函数,以便更好......例如

public class Patron{
   String name;
    public patron(String name){
      this.name=name;
  }
}

然后在接受输入时你可以做这样的事情

String S=s.next();
lines.add(new Patron(S));//or you can directly do lnes.add(new Patron(scan.next()))

答案 1 :(得分:0)

此代码lines.add(s.next());
lines是Patron对象的arraylist,因此您可以在其中添加Patron对象。

s.next()会给你一个字符串。所以这就是错误的原因。

创建一个Patron对象,然后添加到行

答案 2 :(得分:0)

line number: 13
line number: 22
line number: 31
went_in: True
myTup: ('s',)
line number: 31
went_in: True
myTup: ('s',)
Traceback (most recent call last):

  [... truncated / abridged ...]

  File "E:/awesome_folder_name/missing_member_var.py", line 36, in __str__
    return "DemoClass" + str(self.myTup)

AttributeError: 'DemoClass' object has no attribute 'myTup'

返回一个String,而不是一个Patron。如果你的Patron类有一个构造函数,它接受一个String来创建一个Patron实例,你就必须做类似

的事情。
s.next()