如何解决此toString()方法?

时间:2020-03-11 17:48:25

标签: java netbeans-8

我正在尝试使用toString()方法,但由于某种原因无法正常工作,而不是获取实际值(学生的姓名和人数):

================= students list =====================

----------------------
com.se.classes.Student@4554617c
com.se.classes.Student@74a14482
com.se.classes.Student@1540e19d
===============================================

这是com.se.classes中的方法:

public String toString() {
    s = "\n================= students list =====================\n";
    s = s + "\n----------------------";
    for (int i = 0; i < nb; i++) 
    s = s + "\n" + student[i];
    s = s + "\n===============================================";
    return s;
}

请帮助。谢谢。

2 个答案:

答案 0 :(得分:0)

如果您不想(或不能)直接向toString()类添加Student方法,请参见以下示例:

class Student {
    private final String firstName;  // John
    private final String lastName;   // Doe

    // getters
}

static String toString(String[] students) {
    StringBuilder buf = new StringBuilder();
    buf.append("================= students list =====================\n");

    for(Student student : students) {
        buf.append(student.getFirstName()).append(' ').append(studnet.getLastName);  // John Doe
        buf.append("\n----------------------");     
    }   

    return buf.tpString();
}

答案 1 :(得分:0)

您的Student类也需要一个toString()。另外,您的toString效率低下:

public String toString() {
    StringBuilder s = new StringBuilder(System.lineSeparator())
                          .append("================= students list =====================")
                          .append(System.lineSeparator())
                          .append(System.lineSeparator())
                          .append("----------------------";
    for (int i = 0; i < nb; i++) 
        s.append(System.lineSeparator())
         .append(student[i]);

    s.append(System.lineSeparator())
     .append("===============================================");

   return s.toString();
}