Java Language metodo toString ()

Esempio

Il metodo toString() viene utilizzato per creare una rappresentazione String di un oggetto utilizzando il contenuto dell'oggetto. Questo metodo dovrebbe essere sovrascritto durante la scrittura della classe. toString() viene chiamato implicitamente quando un oggetto è concatenato a una stringa come in "hello " + anObject .

Considera quanto segue:

public class User {
    private String firstName;
    private String lastName;
    
    public User(String firstName, String lastName) {
        this.firstName = firstName;
        this.lastName = lastName;
    }
    
    @Override
    public String toString() {
        return firstName + " " + lastName;
    }
    
    public static void main(String[] args) {
        User user = new User("John", "Doe");
        System.out.println(user.toString()); // Prints "John Doe"
    }   
}

Qui toString() dalla classe Object viene sovrascritto nella classe User per fornire dati significativi sull'oggetto durante la stampa.

Quando si utilizza println() , viene chiamato implicitamente il metodo toString() dell'oggetto. Pertanto, queste dichiarazioni fanno la stessa cosa:

System.out.println(user); // toString() is implicitly called on `user`
System.out.println(user.toString());

Se toString() non è sovrascritto nella suddetta classe User , System.out.println(user) può restituire User@659e0bfd o una stringa simile con quasi nessuna informazione utile eccetto il nome della classe. Questo perché la chiamata utilizzerà l'implementazione toString() della classe Java Object base che non conosce nulla sulla struttura della classe User o sulle regole aziendali. Se si desidera modificare questa funzionalità nella classe, è sufficiente sovrascrivere il metodo.