Saya telah melihat pertanyaan ini tetapi memiliki beberapa pertanyaan lagi tentang penggunaan assert
kata kunci. Saya berdebat dengan beberapa coders lain tentang penggunaan assert
. Untuk kasus penggunaan ini, ada metode yang dapat mengembalikan nol jika prasyarat tertentu dipenuhi. Kode yang saya tulis memanggil metode, lalu menyatakan itu tidak mengembalikan nol, dan terus menggunakan objek yang dikembalikan.
Contoh:
class CustomObject {
private Object object;
@Nullable
public Object getObject() {
return (object == null) ? generateObject() : object;
}
}
Sekarang bayangkan saya menggunakannya seperti ini:
public void useObject(CustomObject customObject) {
object = customObject.getObject();
assert object != null;
// Do stuff using object, which would throw a NPE if object is null.
}
Saya diberitahu bahwa saya harus menghapus assert
, bahwa mereka tidak boleh digunakan dalam kode produksi, hanya digunakan dalam pengujian. Benarkah?
Objects.requireNonNull
di Jawa 8).
-ea
atau setara.