Bu soruyu gördüm ancak assertanahtar kelimenin kullanımı hakkında birkaç sorum var . Kullanmayla ilgili diğer birkaç kodlayıcıyla tartışıyordum assert. Bu kullanım durumunda, belirli önkoşullar karşılandığında null değerini döndüren bir yöntem vardı. Yazdığım kod yöntemi çağırır, sonra null döndürmez ve döndürülen nesneyi kullanmaya devam ettiğini iddia eder.
Misal:
class CustomObject {
private Object object;
@Nullable
public Object getObject() {
return (object == null) ? generateObject() : object;
}
}
Şimdi şöyle kullandığımı düşünün:
public void useObject(CustomObject customObject) {
object = customObject.getObject();
assert object != null;
// Do stuff using object, which would throw a NPE if object is null.
}
Üretim kodunda asla kullanılmamaları assertgerektiğini , sadece testlerde kullanılmaları gerektiğini söyledim . Bu doğru mu?
Objects.requireNonNull, Java 8'in girişinden bu yana artık gerekli olmayan bir harici kütüphane önermektedir ).
-eaveya eşdeğeri aracılığıyla açıkça etkinleştirmeniz gerekir .