Objects.isNull vs. Opsional.ofNullable [duplikat]
Oct 21 2020
Saya memiliki potongan kode ini yang digunakan dalam ujian
if (Objects.isNull(o)) {
return null;
}
return String.valueOf(o);
dan ketika saya mengganti bagian kode ini dengan
Optional.ofNullable(String.valueOf(o)).orElse(null);
Saya memiliki kesalahan pernyataan ini dalam pengujian saya:
Expecting: <"null">
to be equal to: <null>
but was not.
Jawaban
2 ernest_k Oct 21 2020 at 17:12
Optional.ofNullable(String.valueOf(o))tidak akan menjadi opsional kosong ketika o == null, karena String.valueOf(null)mengembalikan String "null".
Penggunaan yang benar dari opsional ada:
Optional.ofNullable(o).map(String::valueOf).orElse(null);
Di mana ofNullable(null)akan membuat opsional kosong, menyebabkan orElse(null)untuk akhirnya dipanggil.
1 ShekharKhairnar Oct 21 2020 at 17:11
String.valueOf () mengembalikan toStirng () objek jika bukan null atau mengembalikan string "null"
langsung dari kelas String:
public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}
itu berarti dalam pernyataan Anda, Anda menguji "null" sama dengan null yang gagal.
Selalu Menjadi Ancaman: Mengapa Orang Berkulit Coklat dan Hitam Tidak Bisa Nyaman di Amerika Serikat
Taylor Sheridan Baru Menambahkan 1 Bintang 'Yellowstone' Favoritnya ke Pemeran 'Lawmen: Bass Reeves'