📜  Java中的可抛出 toString() 方法及示例(1)

📅  最后修改于: 2023-12-03 15:31:58.339000             🧑  作者: Mango

Java中的可抛出toString()方法及示例

在Java中,许多类都会默认实现toString()方法。toString()方法的主要目的是将对象转换为字符串,方便输出和调试。但是,有时我们需要更多的控制来定义对象的字符串表示方式。这时,可抛出toString()就派上用场了。

可抛出toString()的定义

可抛出toString()方法是指可以抛出任何类型的异常,并且其定义遵循以下形式:

public String toString() throws SomeException {
    // TODO: Implement toString() method.
}

其中,SomeException为希望抛出的异常类型。

可抛出toString()的示例

下面是一个简单的示例,演示如何使用可抛出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(),但是在某些情况下,定义自己的字符串表示方式是很有帮助的。