是否应该在生产代码中使用断言语句断言不为 null?[已关闭]
我已经看到了这个问题,但对关键字的用法还有一些问题。我正在与其他一些编码人员讨论使用.对于此用例,有一个方法可以在满足某些先决条件时返回 null。我编写的代码调用该方法,然后断言它不返回 null,并继续使用返回的对象。assert
assert
例:
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