在我的代码中,有一种方法可以从API中获取一些数据。
方法可以返回null。在这种情况下使用@NonNull Call<InitGet> call
是不是很好的解决方案?或者我应该使用if-else进行简单的空检查以获取空指针异常?
答案 0 :(得分:2)
@NonNull
不会更改您的代码,它是向客户说明方法的标记"this code is not expected to return null"
因此,如果仍然可以返回null,则不应使用该注释。
但是:-)你走在正确的轨道上 - 不想返回null,所以这是一件好事。
就像你说的那样,你可以将你的方法改为像“null safe”这样的东西:
@NonNull
public String getFoo() {
String foo = something.getFoo();
if(foo == null) {
return "Foo was null, but this is a nice msg for the UI."; // or similar
} else {
return foo;
}
}
在你的情况下,“aes key”听起来像是你拥有它或者你没有它的东西 - 如果你没有,那么它非常糟糕。我会这样做:
@NonNull
public String getAesKey() {
String key = response.body().getAsKy();
if(key == null) {
throw new IllegalStateException(new NullPointerException("Key was null, but we need a key or everything is broken! Fail fast."));
} else {
return key;
}
}
圣诞快乐