【问题标题】:What is the return type of list<student>?list<student> 的返回类型是什么?
【发布时间】:2015-06-26 09:31:34
【问题描述】:

我想创建一个方法来填充student 的数据,方法签名为 public List&lt;student&gt; populateData(String filename).

我是 Java 新手。有人可以帮我解决这个问题吗?

我实现的代码是

public List<Student> populateData(String fileName) {
    // TODO Auto-generated method stub
    Scanner s = null;
    try {
        s = new Scanner(new File("F:\\Participant_Workspace\\Q3\\StudentDataManagementSystem\\StudentDetails.txt‌​"));
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    List<Student> list = new ArrayList<Student>();
    while (s.hasNext()){
        list.addAll(s.next());
    }
    s.close();
    return list;
}

但是添加arrayList&lt;string&gt;list.addAll(s.next()); 会出错。

【问题讨论】:

  • 我只想从文件中读取数据并显示出来。但我不知道它的返回类型是什么。
  • 如果 public List populateData(String filename) 是你的方法,那么 List 是你的返回类型。请更具体一些,做一些编码,然后再回来。
  • 扫描仪 s = null;尝试 { s = new Scanner(new File("F:\\Participant_Workspace\\Q3\\StudentDataManagementSystem\\StudentDetails.txt")); } catch (FileNotFoundException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } List list = new ArrayList(); while (s.hasNext()){ list.add(s.next()); } s.close();我已经完成了这么多的编码,但因为添加 arrayList 出错而卡住了
  • 通过编辑将代码发布到问题中
  • @Sagar 请通过添加您的代码来编辑您的问题。

标签: java return


【解决方案1】:

假设你的文件是这样的。

abc 101

xyz 102

pqr 123

下面给出了一个简单的例子,进行修改并做你的事情。

public class PrintStudentsFromFile {

    public static void main(String[] args) {


     List<Student> students= new PrintStudentsFromFile().populateData("path to text file");


     for (Student student : students) {
            System.out.println(student);
        }
    }
    /**
     * Reads Files and returns a List of Students
     * @param filename
     * @return 
     */
    public List<Student> populateData(String filename){
    Scanner s = null;
    String nameAndRollNumber="";
        try {
            s = new Scanner(new File(filename));

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
        List<Student> list = new ArrayList<Student>();
        while (s.hasNext()) {
        nameAndRollNumber = s.nextLine();
        String[] nameAndRollNumbers = nameAndRollNumber.split("\\s+");
        String name = nameAndRollNumbers[0];
        String roll = nameAndRollNumbers[1];
        list.add(new Student(name, roll));
        }
        s.close();
        return  list;
    }

}
/**
 * 
 * Student Object , with name and Roll Number Params
 */
class Student{

    String name;
    String rollNumber;

    public Student(String name, String rollNumber) {
        this.name = name;
        this.rollNumber = rollNumber;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getRollNumber() {
        return rollNumber;
    }

    public void setRollNumber(String rollNumber) {
        this.rollNumber = rollNumber;
    }

    @Override
    public String toString() {
        return "Name :"+name+"- Roll Number : "+rollNumber;
    }


}

【讨论】:

  • 我们不能像getStudent这样添加新方法
  • 但是我该如何替换 getStudent
  • 编辑了我的答案,但告诉我为什么你不能添加像 getStudent 这样的新方法
  • 这些是为赋值提供的方法,我们甚至不能改变一个词。 :(
  • 嗨,Sagar,如果这个或任何答案解决了您的问题,请点击复选标记考虑accepting it。这向更广泛的社区表明您已经找到了解决方案,并为回答者和您自己提供了一些声誉。没有义务这样做。
猜你喜欢
  • 2022-01-21
  • 2012-05-29
  • 2020-10-18
  • 1970-01-01
  • 2018-04-04
  • 2018-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多