toString() 是否应该返回 null?

cra*_*box 5 java string tostring

toString()如果无法进行转换,java 中的方法是否应该返回 null,或者在这种情况下应该返回空字符串?

Hai*_*ang 3

null 不是 String 因此不允许在这里返回。检查Java文档:

返回对象的字符串表示形式。一般来说,toString 方法返回一个“以文本方式表示”该对象的字符串。结果应该是简洁但信息丰富的表示形式,易于人们阅读。建议所有子类都重写此方法。

它应该返回对象的有意义的字符串表示形式。我写了一个示例来说明如何使用它以及它为什么有用:

public class Car {
    private String make;
    private int year;
    public Car(String make, int year) {
        this.make = make;
        this.year = year;
    }    

    @Overrride
    public String toString() {
        return "Car Make:" + make + "; Built Year: " + year;
    }
}
Run Code Online (Sandbox Code Playgroud)

例子:

Car myCar = new Car("Nissan", 1999);
Car yourCar = new Car("BMW", 2018);
System.out.println(myCar);  // call toString() implicitly
System.out.println(yourCar);
Run Code Online (Sandbox Code Playgroud)

它会打印 2 行,您可以轻松阅读文本并知道哪辆车是您的!

Car Make:Nissan; Built Year: 1999
Car Make:BMW; Built Year: 2018
Run Code Online (Sandbox Code Playgroud)