Rumah > Java > javaTutorial > teks badan

Item - Kembalikan koleksi atau tatasusunan kosong dan bukannya nol

DDD
Lepaskan: 2024-09-13 06:19:06
asal
592 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!

sumber:dev.to
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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!