📅  最后修改于: 2023-12-03 15:31:58.339000             🧑  作者: Mango
在Java中,许多类都会默认实现toString()方法。toString()方法的主要目的是将对象转换为字符串,方便输出和调试。但是,有时我们需要更多的控制来定义对象的字符串表示方式。这时,可抛出toString()就派上用场了。
可抛出toString()方法是指可以抛出任何类型的异常,并且其定义遵循以下形式:
public String toString() throws SomeException {
// TODO: Implement toString() method.
}
其中,SomeException为希望抛出的异常类型。
下面是一个简单的示例,演示如何使用可抛出toString()方法自定义一个类的字符串表示方式。
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String toString() throws NullPointerException {
if (name == null) {
throw new NullPointerException("Person's name cannot be null");
}
return "Person{name='" + name + "', age=" + age + "}";
}
}
在上面的示例中,Person类重写了toString()方法,如果name为null,则该方法抛出NullPointerException异常,否则返回一个包含name和age的字符串。
下面是使用上面的Person类的一个示例:
public class Main {
public static void main(String[] args) {
Person p1 = new Person("Tom", 20);
System.out.println(p1.toString());
Person p2 = new Person(null, 30);
System.out.println(p2.toString());
}
}
输出:
Person{name='Tom', age=20}
Exception in thread "main" java.lang.NullPointerException: Person's name cannot be null
at Person.toString(Person.java:13)
at Main.main(Main.java:8)
在这个示例中,我们创建了两个Person对象,一个名为Tom,年龄为20,另一个名为null,年龄为30。由于其name值为null,最后一行的println()语句抛出了NullPointerException异常。
本文介绍了Java中的可抛出toString()方法及其定义和示例。虽然不是所有的类都需要使用可抛出toString(),但是在某些情况下,定义自己的字符串表示方式是很有帮助的。