使课程可打印

use*_*000 4 java

当我将某些类(例如ArrayList)的实例打印到流(例如System.out.println(ArrayList的实例)时),它不会打印引用ID(例如ArrayList @ 2144c53d),而是打印实际值,并使用一些格式(例如[1,2] 3,4]).我想知道如何为自己的班级做这件事?我是否可能需要定义一些方法/实现一些接口?

Jon*_*eet 10

简单:您重写该Object.toString()方法.例如:

public class Person {
    private final String name;
    private final LocalDate birthDate;

    public Person(String name, LocalDate birthDate) {
        this.name = name;
        this.birthDate = birthDate;
    }

    @Override public String toString() {
        return String.format("%s (born %s)", name, birthDate);
    }
}
Run Code Online (Sandbox Code Playgroud)

对于更复杂的处理,您可能需要考虑实现Formattable界面 - 尽管我自己从未亲自这样做过.

  • @ user1377000他总是第一而且快. (2认同)