Objects.toString în Java

Transformă un obiect în text fără să arunce excepție pentru null: dă "null" sau textul ales de tine.

Sintaxă
static String toString(Object o)
static String toString(Object o, String pentruNull)

Ce face Objects.toString

Objects.toString(o) returnează o.toString(), sau textul "null" dacă o este null (la fel ca String.valueOf(o)). Apelul direct o.toString() ar arunca NullPointerException.

Varianta cu al doilea argument returnează textul ales pentru null, de exemplu "-" sau "nespecificat". Este utilă la afișarea câmpurilor opționale în rapoarte și tabele.

Parametri

Parametru Descriere
o Obiectul transformat, poate fi null.
pentruNull Textul returnat dacă o este null.

Ce returnează

Un String.

Exemple

Exemplul 1: Cu și fără text implicit

import java.util.Objects;

public class Main {
    public static void main(String[] args) {
        Integer nota = null;
        System.out.println(Objects.toString(nota));
        System.out.println(Objects.toString(nota, "absent"));
        System.out.println(Objects.toString(9, "absent"));
    }
}

Rezultat

null
absent
9

Exemplul 2: Un tabel cu câmpuri opționale

import java.util.Objects;

public class Main {
    record Angajat(String nume, String telefon, Integer etaj) {}

    public static void main(String[] args) {
        Angajat[] lista = {
            new Angajat("Ana Popa", "0745111222", 3),
            new Angajat("Ion Rusu", null, null),
        };
        for (Angajat a : lista) {
            System.out.printf("%-10s | %-10s | etaj %s%n",
                    a.nume(), Objects.toString(a.telefon(), "-"), Objects.toString(a.etaj(), "?"));
        }
    }
}

Rezultat

Ana Popa   | 0745111222 | etaj 3
Ion Rusu   | -          | etaj ?

Greșeli frecvente

  • Te aștepți ca Objects.toString(null) să dea un șir gol: dă textul "null". Pentru șir gol scrie Objects.toString(o, "").

Comenzi înrudite

  • Object.toString: Returnează textul care descrie obiectul; este apelată automat de println și de operatorul + cu șiruri.
  • String.valueOf: Transformă orice valoare (număr, boolean, char, obiect, char[]) în String; copyValueOf face un șir dintr-un char[].
  • Objects: Clasa java.util.Objects are metode statice care lucrează sigur cu null; equals() compară două obiecte care pot fi null.
  • Objects.requireNonNull: requireNonNull() oprește imediat cu un mesaj clar dacă o valoare este null; requireNonNullElse() înlocuiește null cu o valoare implicită.