以下两个代码片段之间有什么区别?
public Integer getId(@Nonnull SomeObject obj){
// do some stuff
return id;
}
public Integer getId(SomeObject obj){
Objects.requireNonNull(SomeObject, "SomeObject is null");
// do some stuff
return id;
}
它们之间有哪些重要区别?在这些情况下,正确的空值检查方式是什么?
@Nonnull
告诉编译器给定的参数不应该为null
,而requireNonNull
则检查给定的对象是否为null
。 - MC Emperor