jjzjj

requireNonNull

全部标签

java - 如果使用来自 Guava 的 com.google.common,为什么不应该使用 Objects.requireNonNull()?

Preconditions的Javadoc来自Google的Guava库指出:Projectswhichusecom.google.commonshouldgenerallyavoidtheuseofObjects.requireNonNull(Object).Instead,usewhicheverofcheckNotNull(Object)orVerify.verifyNotNull(Object)isappropriatetothesituation.(Thesamegoesforthemessage-acceptingoverloads.)此建议背后的动机是什么?我在Javad

java.util.Objects.requireNonNull 与 Preconditions.checkNotNull

GuavaPreconditions的文档备注:Projectswhichusecom.google.commonshouldgenerallyavoidtheuseofObjects.requireNonNull(Object).Instead,usewhicheverofcheckNotNull(Object)orVerify.verifyNotNull(Object)isappropriatetothesituation.(Thesamegoesforthemessage-acceptingoverloads.)有人可以解释这个建议的理由吗?是为了一致性还是Objects.req

java - Objects.requireNonNull(T obj) 而不是 null 检查并手动抛出 IllegalArgumentException?

每当我必须检查方法的给定参数是否为空时,我都会编写空检查并抛出IllegalArgumentException。如果null检查失败:if(user==null){thrownewIllegalArgumentException("Usercan'tbenull.");}但是,通过阅读一些Java8类的源代码,例如ArrayList,我发现Oracle正在使用Objects.requireNonNull检查一个参数是否为空值,然后,如果测试失败,一个NullPointerException被抛出。这样,采用这种方法,前面的代码片段应该是这样的:Objects.requireNonNul

java - 在 Android Studio 中使用 @NonNull 注解的正确方法

我想在Android中使用@NonNull注释,但我想不出正确的方法。我建议你这个例子:publicvoiddoStuff(@NonNullStrings){//doworkwiths...}所以当我调用doStuff(null)时,IDE会给我一个警告。问题是我不能依赖这个注释,因为像this问题指出,它们不会传播很远。所以我想对我的方法进行空检查,如下所示:if(s==null)thrownewIllegalAgrumentException();但假设s!=null的IDE会警告我s==null始终为假。我想知道最好的方法是什么。我个人认为应该有一个像@ShouldntBeNul

java - 在 Android Studio 中使用 @NonNull 注解的正确方法

我想在Android中使用@NonNull注释,但我想不出正确的方法。我建议你这个例子:publicvoiddoStuff(@NonNullStrings){//doworkwiths...}所以当我调用doStuff(null)时,IDE会给我一个警告。问题是我不能依赖这个注释,因为像this问题指出,它们不会传播很远。所以我想对我的方法进行空检查,如下所示:if(s==null)thrownewIllegalAgrumentException();但假设s!=null的IDE会警告我s==null始终为假。我想知道最好的方法是什么。我个人认为应该有一个像@ShouldntBeNul

java - @Nonnull 和 Objects.requireNonNull 有什么区别

以下两个代码片段有什么区别。publicIntegergetId(@NonnullSomeObjectobj){//dosomestuffreturnid;}publicIntegergetId(SomeObjectobj){Objects.requireNonNull(SomeObject,"SomeObjectisnull");//dosomestuffreturnid;}它们之间的显着区别是什么。在这些情况下进行空检查的正确方法是什么。 最佳答案 两者是互补的:@Nonnull注解记录了obj必须是非空的事实,而Objects

java - Objects#requireNonNull 的目的是什么

检查JavaDocs后对于我正在考虑使用的方法,requiredNonNull,我偶然发现了第一个参数为(Tobj)的参数.然而,这个带有这个签名的特定方法的实际目的是什么?它所做的只是抛出NPE,我有点肯定(因为我可能在这里遗漏了一些明显的东西)无论如何都会被抛出。Throws:NullPointerException-ifobjisnull后者在调试某些代码方面实际上是有意义的,正如文档还指出的那样,它主要是为参数验证而设计的publicstaticTrequireNonNull(Tobj,Stringmessage)Checksthatthespecifiedobjectrefe

java - Objects.requireNonNull 是否比旧方法效率低?

自JDK7以来,我一直很高兴地使用它引入的方法来拒绝传递给无法接受它们的方法的null值:privatevoidsomeMethod(SomeTypepointer,SomeTypeanotherPointer){Objects.requireNonNull(pointer,"pointercannotbenull!");Objects.requireNonNull(anotherPointer,"anotherPointercannotbenull!");//Restofmethod}我认为这种方法使代码非常整洁,易于阅读,我正在努力鼓励同事使用它。但是一位(尤其是知识渊博的)同事表

java - 为什么要使用 Objects.requireNonNull()?

我注意到OracleJDK中的许多Java8方法使用Objects.requireNonNull(),如果给定的对象(参数)是,它会在内部抛出NullPointerException空。publicstaticTrequireNonNull(Tobj){if(obj==null)thrownewNullPointerException();returnobj;}但是如果null对象被取消引用,则无论如何都会抛出NullPointerException。那么,为什么要进行这种额外的空检查并抛出NullPointerException?一个明显的答案(或好处)是它使代码更具可读性,我同意。