この質問を見たことがありますが、assert
キーワードの使用法についていくつか質問があります。の使用について他の数人のコーダーと議論していましたassert
。この使用例では、特定の前提条件が満たされている場合にnullを返すことができるメソッドがありました。私が書いたコードはメソッドを呼び出し、それがnullを返さないことを表明し、返されたオブジェクトを引き続き使用しています。
例:
class CustomObject {
private Object object;
@Nullable
public Object getObject() {
return (object == null) ? generateObject() : object;
}
}
次のように使用するとします。
public void useObject(CustomObject customObject) {
object = customObject.getObject();
assert object != null;
// Do stuff using object, which would throw a NPE if object is null.
}
を削除する必要があると言われましassert
た。これらは製品コードでは使用しないでください。テストでのみ使用してください。本当?
Objects.requireNonNull
Java 8での導入以降、不要な外部ライブラリが推奨されています)。
-ea
または同等のものを実行時に明示的に有効にする必要があります。