Rumah  >  Artikel  >  Java  >  Item - Kembalikan koleksi atau tatasusunan kosong dan bukannya nol

Item - Kembalikan koleksi atau tatasusunan kosong dan bukannya nol

DDD
DDDasal
2024-09-13 06:19:06521semak imbas

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

Jangan kembalikan null:

  • Kaedah yang mengembalikan null sebagai ganti koleksi atau tatasusunan kosong memerlukan pengendalian pelanggan tambahan untuk mengelakkan pengecualian.

Masalah dengan null:

  • Pelanggan perlu menambah cek berlebihan (jika ingin menyemak batal).
  • Tinggalan dalam semakan ini mungkin tidak disedari, mengakibatkan pepijat.
  • Ia menyukarkan untuk melaksanakan kaedah yang mengembalikan koleksi atau tatasusunan.

Hujah menentang batal:

  • Jangan risau tentang prestasi memperuntukkan koleksi atau tatasusunan kosong melainkan ia terbukti menjadi halangan.

Alternatif yang cekap:

  • Gunakan koleksi atau tatasusunan kosong dan bukannya null.
  • Koleksi tidak berubah boleh dikembalikan berulang kali (cth.: Collections.emptyList(), Collections.emptySet()).
  • Tatasusunan kosong juga boleh dikembalikan dengan cekap.

Prestasi yang dioptimumkan:

  • Gunakan koleksi tidak berubah kosong boleh guna semula untuk mengelakkan peruntukan baharu yang tidak perlu.
  • Kembalikan tatasusunan kosong yang sama dan bukannya membuat tatasusunan baharu setiap kali

Contoh kod:
Kaedah salah yang mengembalikan null:

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

Layanan pelanggan yang tidak mencukupi:

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

Kaedah yang betul yang mengembalikan koleksi kosong:

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

Menggunakan koleksi kosong yang tidak boleh diubah:

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

Gunakan dengan tatasusunan kosong:

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

Penggunaan tatasusunan kosong yang dioptimumkan:

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

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

Kesimpulan:
Jangan kembalikan nol: Sentiasa memilih koleksi atau tatasusunan kosong. Ini memudahkan API, menghalang ralat dan jarang memberi kesan negatif kepada prestasi.

Atas ialah kandungan terperinci Item - Kembalikan koleksi atau tatasusunan kosong dan bukannya nol. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn