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

Item - Kembalikan koleksi atau tatasusunan kosong dan bukannya nol

DDD
Lepaskan: 2024-09-13 06:19:06
asal
695 orang telah melayarinya

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

Salin selepas log masuk

Layanan pelanggan yang tidak mencukupi:

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

Salin selepas log masuk

Kaedah yang betul yang mengembalikan koleksi kosong:

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

Salin selepas log masuk

Menggunakan koleksi kosong yang tidak boleh diubah:

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

Salin selepas log masuk

Gunakan dengan tatasusunan kosong:

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

Salin selepas log masuk

Penggunaan tatasusunan kosong yang dioptimumkan:

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

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

Salin selepas log masuk

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 Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan