如何将一个arraylist传递给另一个班级

时间:2013-11-26 02:20:08

标签: java string class arraylist

这是我正在使用的代码

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

public class Message{

    Scanner input;
    String emailLine = "";
    String line;
    ArrayList<String> email = new ArrayList<String>();
    String emailString;
    String sender;
    String subject;
    String emailMIN;
    String[] newString;
    StringBuilder emailStringBuilder = new StringBuilder();

    public Message(String m)throws IOException{


    File inFile = new File ("mail.txt");
    input = new Scanner (inFile);
    String message;
    getEmails();
    }

    public void getEmails(){

    while(input.hasNextLine()){
            line = input.nextLine(); 
            System.out.println("Test, line: " + line);

                    if(line.equals("<END>")){
                    System.out.println("Test, <END> reached");
                    System.out.println("Test, email String: " +
emailStringBuilder.toString());
                            email.add(emailStringBuilder.toString());
                    }
                    else{
                            emailStringBuilder.append("\n" + line);
                    }
            }
            }

我正在尝试将电子邮件ArrayList传递到另一个类,以便我可以将ArrayList的字符串拆分为单独的数组。我该怎么做呢?另外,一旦我进入另一个类,我如何访问ArrayList的每个元素并将每个元素分解为另一个ArrayList,每个元素由行分隔?

2 个答案:

答案 0 :(得分:0)

首先,ArrayList不是List数组。在您的案例List中,它只是String个项目。

如果您想将ArrayList传递给其他班级,您可以执行以下操作:

public class MyOtherClass {

public void doSomething(ArrayList<String> myList) {
    // do something with "myList"
}

然后在你的Message课程中:

MyOtherClass myClass = new MyOtherClass();
myClass.doSomething(email);

这有帮助吗?

注意

根据您对问题的编辑,我认为您并不完全了解ArrayList的工作原理。它是 List Array!它只是List接口的数组实现,可以在某些任务中获得更好的性能。有关详细信息,请参阅the javadocs about ArrayList

修改

正如peeskillet建议的那样,你也可以在新课程中实例化一个Message类对象并从那里获得ArrayList,但是email必须是一个公共字段。您的班级Message或为email声明一个getter方法。

编辑

由于您添加了更多问题:

您可以像这样查看ArrayList的所有元素:

For (String nextString : email) {
    System.out.println(nextString); // Or do whatever you want with it :)
}

答案 1 :(得分:0)

使用message.getEmails()来接收您的电子邮件。

以下是示例代码

public class Message{
Scanner input;
String emailLine = "";
String line;
List<String> emails = new ArrayList<String>();
String emailString;
String sender;
String subject;
String emailMIN;
String[] newString;
StringBuilder emailStringBuilder = new StringBuilder();

public Message(String m)throws IOException{


    File inFile = new File ("mail.txt");
    input = new Scanner (inFile);
    String message;
    populateEmails();
}

public void populateEmails(){

    while(input.hasNextLine()){
        line = input.nextLine(); 
        System.out.println("Test, line: " + line);

        if(line.equals("<END>")){
            System.out.println("Test, <END> reached");
            System.out.println("Test, email String: " +
                    emailStringBuilder.toString());
            emails.add(emailStringBuilder.toString());
        }
        else{
            emailStringBuilder.append("\n" + line);
        }
    }

}

public List<String> getEmails() {
    return emails;
}
}