我有这样的代码:
obj1 = SomeObject.method1();
if (obj1 != null) {
obj2 = obj1.method2();
if (obj2 != null) {
obj3 = obj2.method3();
if (obj3 != null) {
............
return objN.methodM();
}
}
}
....
我有将近10个步骤。看起来非常脆弱且容易出错。有没有更好的方法来检查空链方法?
谢谢。
这是null
Java中引用的常见问题。
我更喜欢与&&
:
if (obj1 != null && obj1.method1() != null && obj1.method1().method2() != null)
我有这样的代码: 我有近10个台阶。它看起来非常脆弱而且容易出错。有更好的方法检查空链接方法吗? 多谢了。
问题内容: 通常,您可能有一种检查大量条件并返回状态的方法(现在先说布尔值)。最好定义一个标志,在方法中进行设置,然后在最后返回: 还是知道方法的结果后简单地返回就更好/更正确? 现在显然可以有try / catch块和所有其他类型的条件,但是我认为概念很明确。意见? 问题答案: 如果您要调用的方法数以千计,那么尽早返回会更好地提高性能。 如果没有,那么我宁愿延迟归还,因为这样可以提高可读性。 请
问题内容: 如果是这样,在什么情况下? Javadoc和JPA规范什么也没说。 问题答案: 你是对的。JPA规范对此一无所获。但是 Java Persistence with Hibernate的第二版书 说: 如果查询结果为空,则返回null 调用query.getResultList()时,没有结果的Hibernate JPA实现(实体管理器)返回null。 更新 正如某些用户指出的那样,最新
接口列表的迭代器方法可以返回null吗? 链接:https://docs.oracle.com/javase/7/docs/api/java/util/list.html#iterator()
我是java新手,以前使用过php、python和js。最近使用python,所以要习惯类似“IfMyVar为None:”。这里是我的问题:我从一些库中获取区域设置作为可选的,我只需要返回一种语言,或者如果发生超时,或者一些错误,等等。然后我需要将语言传递给某个对象(上下文),然后在稍后的某处将上下文转换为请求的参数。所以我做了一些类似的事情 我有一个建议,用可选语言重写所有内容。用类似的方法替换
问题内容: 重写的方法可以有不同的返回类型吗? 问题答案: Java支持*协变返回类型的重写方法。这意味着重写的方法可能具有更特定的返回类型。也就是说,只要新的返回类型可分配给你要覆盖的方法的返回类型,就可以使用。 例如: 这在Java语言规范的8.4.5节中指定: 如果返回类型是引用类型,则返回类型在彼此覆盖的方法之间可能会有所不同。返回类型可替换性的概念支持协变返回,即返回类型到子类型的特殊化