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 scrieObjects.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ă.