有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

getter方法中的Java断言

假设我们有以下代码:

Owner owner;
public Owner getOwner(int id)
{
    if (owner == null)
        owner = Owners.getOwner(id);
    assert owner != null;
    return owner;
}

如果业主不同意,会发生什么。getOwner(id)返回空值?如果在返回之前添加了断言,该方法会消亡还是仍然返回null

如果getOwner(id)被断言为null,那么如果getOwner(id)为空,则仍将抛出NPE。doSomething();叫什么名字


共 (1) 个答案

  1. # 1 楼答案

    断言可以打开和关闭以运行程序,默认情况下是关闭的。如果它们被打开并且它们的条件被触发,JVM将抛出一个AssertionError。从您的评论来看,您似乎没有启用断言

    因为断言可以消失,所以您不应该将应用程序逻辑建立在断言的基础上:如果您想在某种意外情况下引发错误,请抛出异常