„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Item – Gibt leere Sammlungen oder Arrays statt null zurück

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

Veröffentlicht am 06.11.2024
Durchsuche:349

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

Kein 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 macht es schwierig, die Methode zu implementieren, 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 getCheeses() {
    return cheesesInStock.isEmpty() ? null : new ArrayList(cheesesInStock);
}

Unzureichende Kundenbehandlung:

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

Richtige Methode, die eine leere Sammlung zurückgibt:

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

Verwendung einer unveränderlichen leeren Sammlung:

public List 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);
}

Abschluss:
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.

Freigabeerklärung Dieser Artikel ist abgedruckt unter: https://dev.to/giselecoder/item-54-retorne-colecoes-ou-arrays-vazios-em-vez-de-nulos-1ej6?1 Bei Verstößen wenden Sie sich bitte an Study_golang @163.com löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3