Bu soruyu gördüm ancak assert
anahtar 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ı assert
gerektiğ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 ).
-ea
veya eşdeğeri aracılığıyla açıkça etkinleştirmeniz gerekir .