Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中是否有“boolean Object.isNull(Object Object)”或类似的静态实用程序方法?_Java_Nullpointerexception_Null_Nullable - Fatal编程技术网

Java中是否有“boolean Object.isNull(Object Object)”或类似的静态实用程序方法?

Java中是否有“boolean Object.isNull(Object Object)”或类似的静态实用程序方法?,java,nullpointerexception,null,nullable,Java,Nullpointerexception,Null,Nullable,与以下对话相关- 第二个链接提供了一些避免!=空语句 使用assert就是其中之一 使用-不是一个选项,因为每个交易的人都不负责生产代码 第一个链接只是建议!=空idea hasrequiresNonNull方法,这些方法抛出NullPointerException,如果使用对象,无论如何都会抛出NullPointerException断言也提出了同样的方法。如果我能处理所有的异常,那么代码就会因为太多的尝试和捕获而变得丑陋 使用!=null在面向对象的意义上不是很漂亮 我认为Objec

与以下对话相关-

第二个链接提供了一些避免
!=空
语句

  • 使用
    assert
    就是其中之一
  • 使用-不是一个选项,因为每个交易的人都不负责生产代码
  • 第一个链接只是建议
    !=空
    idea

    has
    requiresNonNull
    方法,这些方法抛出NullPointerException,如果使用对象,无论如何都会抛出NullPointerException<代码>断言也提出了同样的方法。如果我能处理所有的异常,那么代码就会因为太多的尝试和捕获而变得丑陋

    使用
    !=null在面向对象的意义上不是很漂亮

    我认为
    Object.isNull
    Object.isNotNull
    是让代码看起来简洁整洁的方法,同时也能很好地处理这种情况(我的意思是不用冗长的
    try…catch
    语句)。我可以很容易地在任何条件语句中使用它们。这比原始的
    !=空

    但是,为什么没有这样的方法呢?传空真是个坏主意吗?如果是,那么如果null是有效响应而不是
    ,我们该怎么办空值

    编辑:

    将问题改为: 为什么Java中没有
    布尔对象.isNull(对象对象)
    静态实用程序方法?在Java中是否存在
    布尔对象.isNull(对象对象)
    或类似的静态实用程序方法?

    静态布尔值为空(对象obj)
    如果提供的引用为null,则返回true,否则返回false

    静态布尔非空(对象obj)
    如果提供的引用为非null,则返回true,否则返回false

    从1.8开始,尽管…

    静态布尔值为空(对象obj)
    如果提供的引用为null,则返回true,否则返回false

    静态布尔非空(对象obj)
    如果提供的引用为非null,则返回true,否则返回false


    从1.8开始,虽然…

    我不明白使用
    obj==null
    obj!=空
    Objects.isNull
    Objects.nonNull
    都使用
    returnobj==null
    returnobj!=null
    内部。如果(x!=null)
    在许多上下文中,代码本身没有任何错误。您应该更深入地阅读第二个链接,因为(在我看来)所提出的要点是,您不应该随意地从自己的代码返回
    null
    ,这会迫使客户端代码过度防御。添加
    Objects.isNull的详细信息只在处理流或使用方法引用的其他上下文时才有价值。在任何情况下盲目地使用“==null是坏代码”这样的语句都是愚蠢的。(a)您似乎混淆了
    Object
    Objects
    。(b) 在Java 8中,有
    对象.isNull
    对象.nonNull
    。此外,您不应该使用
    try catch
    来检查null<代码>对象!=null
    是检查对象是否为
    null
    的正确方法,使用
    try-catch
    进行null检查是一种糟糕的设计。@Tarunmagnti对我来说,假设您知道自己在使用它时在做什么以及不应该做什么是很简单的。我不会告诉木匠不要使用锤子,因为他可能会伤到拇指……我不明白使用
    obj==null
    obj!=空
    Objects.isNull
    Objects.nonNull
    都使用
    returnobj==null
    returnobj!=null
    内部。如果(x!=null)在许多上下文中,代码本身没有任何错误。您应该更深入地阅读第二个链接,因为(在我看来)所提出的要点是,您不应该随意地从自己的代码返回
    null
    ,这会迫使客户端代码过度防御。添加
    Objects.isNull的详细信息只在处理流或使用方法引用的其他上下文时才有价值。在任何情况下盲目地使用“==null是坏代码”这样的语句都是愚蠢的。(a)您似乎混淆了
    Object
    Objects
    。(b) 在Java 8中,有
    对象.isNull
    对象.nonNull
    。此外,您不应该使用
    try catch
    来检查null<代码>对象!=null
    是检查对象是否为
    null
    的正确方法,使用
    try-catch
    进行null检查是一种糟糕的设计。@Tarunmagnti对我来说,假设您知道自己在使用它时在做什么以及不应该做什么是很简单的。我不会告诉木匠不要使用锤子,因为他可能会伤到拇指…@反斜杠它们可以用作流的方法引用。代码看起来更干净
    someList.stream().filter(Objects::nonNull).forEach(…)
    @MikhailAntonov这正是它只出现在Java8中的原因。在方法引用之前,它是无用的system@MikhailAntonov在这种特殊情况下,它是有意义的!但是OP在问题中没有具体说明这一点,他通常谈到“在面向对象语言中检查空值”,正如OP所说的“使用!=null在面向对象的意义上不是很漂亮。”-这在我看来完全是荒谬的。@Tarunmagni使用空值检查或不使用空值检查可能有很多原因。有些很好,有些不太好。这是一种“没有黑或白”的东西。在某些用例中,只使用null并检查它可能是合理的,而在其他情况下,您当然希望避免这种情况。没有“总是坏的”或“总是好的”。谈到空引用本身是另一回事