Heim >Java >javaLernprogramm >Item – Gibt leere Sammlungen oder Arrays statt null zurück

Item – Gibt leere Sammlungen oder Arrays statt null zurück

DDD
DDDOriginal
2024-09-13 06:19:06632Durchsuche

Item - Retorne coleções ou arrays vazios, em vez de nulos

Nicht null zurückgeben:

  • Methoden, die anstelle leerer Sammlungen oder Arrays Null zurückgeben, erfordern eine zusätzliche Client-Behandlung, um Ausnahmen zu vermeiden.

Probleme mit null:

  • Clients müssen redundante Prüfungen hinzufügen (wenn eine Prüfung auf Null erfolgen soll).
  • Auslassungen bei diesen Prüfungen können unbemerkt bleiben und zu Fehlern führen.
  • Es erschwert die Implementierung der Methode, die die Sammlung oder das Array zurückgibt.

Argument gegen null:

  • Machen Sie sich keine Sorgen über die Leistung der Zuweisung leerer Sammlungen oder Arrays, es sei denn, es handelt sich nachweislich um einen Engpass.

Effiziente Alternativen:

  • Verwenden Sie leere Sammlungen oder Arrays anstelle von Null.
  • Unveränderliche Sammlungen können wiederholt zurückgegeben werden (z. B.: Collections.emptyList(), Collections.emptySet()).
  • Leere Arrays können auch effizient zurückgegeben werden.

Optimierte Leistung:

  • Verwenden Sie wiederverwendbare, leere, unveränderliche Sammlungen, um unnötige neue Zuweisungen zu vermeiden.
  • Gibt dasselbe leere Array zurück, anstatt jedes Mal ein neues zu erstellen

Codebeispiele:
Falsche Methode, die null zurückgibt:

// Exemplo incorreto
public List<Cheese> getCheeses() {
    return cheesesInStock.isEmpty() ? null : new ArrayList<>(cheesesInStock);
}

Unzureichende Kundenbehandlung:

List<Cheese> cheeses = shop.getCheeses();
if (cheeses != null && !cheeses.isEmpty()) {
    // Lógica para lidar com queijos disponíveis
}

Korrekte Methode, die eine leere Sammlung zurückgibt:

// Exemplo correto
public List<Cheese> getCheeses() {
    return cheesesInStock.isEmpty() ? Collections.emptyList() : new ArrayList<>(cheesesInStock);
}

Verwendung einer unveränderlichen leeren Sammlung:

public List<Cheese> getCheeses() {
    return cheesesInStock.isEmpty() ? Collections.emptyList() : new ArrayList<>(cheesesInStock);
}

Verwendung mit leeren Arrays:

// Retorno de array vazio corretamente
public Cheese[] getCheeses() {
    return cheesesInStock.toArray(new Cheese[0]);
}

Optimierte Verwendung eines leeren Arrays:

private static final Cheese[] EMPTY_CHEESE_ARRAY = new Cheese[0];

public Cheese[] getCheeses() {
    return cheesesInStock.toArray(EMPTY_CHEESE_ARRAY);
}

Fazit:
Nie null zurückgeben: Bevorzugen Sie immer leere Sammlungen oder Arrays. Dies vereinfacht die API, verhindert Fehler und wirkt sich selten negativ auf die Leistung aus.

Das obige ist der detaillierte Inhalt vonItem – Gibt leere Sammlungen oder Arrays statt null zurück. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn