当前位置: 首页 > 面试题库 >

未公开的String.compareTo(null)NPE吗?

锺离德运
2023-03-14
问题内容

以下小测试将引发NPE:

public class Test {

    public static void  main(String[] args) {

        String a = "a";
        String b = null;

        System.out.println(a.compareTo(b));

    }

}

但是,compareTo()的Javadoc
并未提及该参数不能为null。这很奇怪,因为Javadocs通常会提到何时参数不能为null

这仅仅是文档中的一个小故障,还是我想念的更根本的原因/扭曲?


问题答案:

查看Comparable接口时,您可以得到一些解释:

请注意,null不是任何类的实例,即使e.equals(null)返回false,e.compareTo(null)也应引发NullPointerException。



 类似资料:
  • 问题内容: 我在Docker中设置了一个简单的节点服务器。 Docker文件 example.js 现在建立图像 现在在容器中运行 验证容器正在运行并且端口已映射: 现在,让我们附加到容器并验证服务器是否在其中运行: 并在容器命令行中输入: 看起来不错吧? 问题 当我在主机上执行相同的curl命令(或使用浏览器导航到http:// localhost:1337 )时,什么都看不到。 知道为什么容器

  • 问题内容: 是否存在以下行为的逻辑语言设计类型的解释(Java 7和我怀疑较早的版本): 问题答案: 在statement中有一个method的调用,其源代码如下: 那就是为什么你得到 NPE 另一方面,在statement中有一个method的调用,其源代码如下: 这就是为什么您得到 “空” 而不是 NPE的原因 Java语言规范中的一些理论问题:15.12.2.5选择最具体的方法 如果多个成员

  • 问题内容: 这是错误: 这是导致问题的代码区域。 该错误是什么意思,需要做些什么才能修复上面的代码? 问题答案: 你要: 将 每个方括号 转义 两次 -对于需要从其特殊含义中删除它们的每种上下文一次:一次在 正则表达式中 ,然后在 Java String中 。 当您需要对 整个模式 进行 字面 解释时,请考虑使用。 说明 有工作 正则表达式 ,但并没有标准字符,正则表达式明智的:他们在这方面有特殊

  • 默认情况下,MapStruct将NullValueMappingStrategy作为RETURN_NULL。我的要求是,当source为null时,我需要抛出一个NPE,类似于lombok的@nonnull的工作方式。

  • 在使用实体框架DbContext类型基类的存储库项目中,我有几个存储库类。 基类,基类 员工回购界面 员工回购 我正在将Repo类添加到Asp中的Windsor容器中。Mvc网站使用基于存储库项目内接口的安装程序。我在这里查看了容器,得到了三个存储库。 我尝试注册DbContext,如下所示,但得到了相同的结果。 然后,在我的ApiController中,我使用Property注入来实例化Repo

  • 问题内容: 新的Xcode 7.3通过addTarget传递参数通常对我有用,但在这种情况下,它会在标题中引发错误。有任何想法吗?当我尝试将其更改为@objc时,它将引发另一个 谢谢! 它正在调用的选择器 问题答案: 就我而言,选择器的功能是。一旦我删除错误消失了。同样适用。 在Swift 4中, 您将需要添加到函数声明中。直到快速4,这是隐式推断。