在 Java 的不同行中打印多个 ArrayList 对象
Printing multiple ArrayList objects in separate lines in Java
我有一个 class 包含关于课程的一些基本信息和一个 ArrayList
包含学生 class 的对象。
有没有更聪明的方法来编辑 toString()
方法以便打印出关于课程和每个学生的信息(每个学生在单独的一行上)然后这个:
public String toString() {
System.out.println("Course " + this.name + ", Teacher: " + this.teacher;
for (Student stud: studentList) {
System.out.println(stud);
}
retutn "";
我已经设置了 Student class' toString()
打印学生信息的方法。
*编辑:意识到我在 print(stud)
上犯了一个错误,所以改成 println(stud)
您应该使用 System.out.println(stud)
而不是 System.out.print(stud)
"println" 的作用是在新行上打印每个学生
另请参阅 this 以了解系统
上的所有内容
- 如果要每行打印一个学生,请使用
System.out.println
而不是 System.out.print
- 您不应该 打印
toString
中的内容,您应该只 return 一个描述性字符串。
在这种情况下,您似乎想要一种打印内容的方法,因此请使用 toString
以外的方法。也许 printCourseInfo
例如:
public void printCourseInfo() {
System.out.println("Course " + name + ", Teacher: " + teacher);
for (Student stud: studentList) {
System.out.println(stud); // Note println instead of print
}
}
奖励部分:如果你使用的是Java 8,你可以
studentList.forEach(System.out::println);
当你有一个 toString()
方法时,你应该返回一个字符串,而不是打印出来。
由于您在本例中使用的是 System.out.print
,这意味着您可能想要打印出来。因此,在您的 for-each 循环
中将其更改为 System.out.println
public void printCourseInfo() {
System.out.println("Course " + name + ", Teacher: " + teacher);
for (Student stud: studentList) {
System.out.println(stud);
}
}
其他人提到您不应该真正改变 toString() 的用途。
相反,您应该实现 'getAsPrettyString()' 等方法。
如果你很懒惰(像我一样)你可能想使用这样的东西:
import java.util.List;
import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
public class Blah {
private String hello;
private List<String>helloList;
public String getAsPrettyString() {
return ReflectionToStringBuilder.toString(this);
}
}
我有一个 class 包含关于课程的一些基本信息和一个 ArrayList
包含学生 class 的对象。
有没有更聪明的方法来编辑 toString()
方法以便打印出关于课程和每个学生的信息(每个学生在单独的一行上)然后这个:
public String toString() {
System.out.println("Course " + this.name + ", Teacher: " + this.teacher;
for (Student stud: studentList) {
System.out.println(stud);
}
retutn "";
我已经设置了 Student class' toString()
打印学生信息的方法。
*编辑:意识到我在 print(stud)
上犯了一个错误,所以改成 println(stud)
您应该使用 System.out.println(stud)
而不是 System.out.print(stud)
"println" 的作用是在新行上打印每个学生
另请参阅 this 以了解系统
上的所有内容- 如果要每行打印一个学生,请使用
System.out.println
而不是System.out.print
- 您不应该 打印
toString
中的内容,您应该只 return 一个描述性字符串。
在这种情况下,您似乎想要一种打印内容的方法,因此请使用 toString
以外的方法。也许 printCourseInfo
例如:
public void printCourseInfo() {
System.out.println("Course " + name + ", Teacher: " + teacher);
for (Student stud: studentList) {
System.out.println(stud); // Note println instead of print
}
}
奖励部分:如果你使用的是Java 8,你可以
studentList.forEach(System.out::println);
当你有一个 toString()
方法时,你应该返回一个字符串,而不是打印出来。
由于您在本例中使用的是 System.out.print
,这意味着您可能想要打印出来。因此,在您的 for-each 循环
System.out.println
public void printCourseInfo() {
System.out.println("Course " + name + ", Teacher: " + teacher);
for (Student stud: studentList) {
System.out.println(stud);
}
}
其他人提到您不应该真正改变 toString() 的用途。 相反,您应该实现 'getAsPrettyString()' 等方法。 如果你很懒惰(像我一样)你可能想使用这样的东西:
import java.util.List;
import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
public class Blah {
private String hello;
private List<String>helloList;
public String getAsPrettyString() {
return ReflectionToStringBuilder.toString(this);
}
}