当前位置: 首页 > 知识库问答 >
问题:

在java中使用null进行类型转换时没有例外

刘琨
2023-03-14
String x = (String) null;

为什么这种说法没有例外?

String x = null;
System.out.println(x);

它将打印null。但.toString()方法应引发空指针异常。

共有1个答案

濮宇定
2023-03-14

您可以将null强制转换为任何引用类型,而不会获得任何异常。

println方法不会抛出空指针,因为它首先检查对象是否为空。如果为null,则它只打印字符串“null”。否则,它将调用该对象的ToString方法。

添加更多细节:内部打印方法在输入对象上调用String.ValueOf(object)方法。并且在valueof方法中,此检查有助于避免空指针异常:

return (obj == null) ? "null" : obj.toString();

如果不是特殊情况,那么在空对象上调用任何方法都应该引发空指针异常

 类似资料:
  • 问题内容: 为什么这句话没有例外? 它打印。但是方法应该抛出一个空指针异常。 问题答案: 您可以转换为任何引用类型,而不会出现任何异常。 该方法不会抛出空指针,因为它首先检查对象是否为空。如果为null,则仅打印字符串。否则它将调用该对象的方法。 添加更多详细信息:在输入对象上内部打印方法调用方法。在方法中,此检查有助于避免空指针异常: 为了避免混淆,如果不是特殊情况,则在null对象上调用任何方

  • 问题内容: 是一个浮动字段。所提到的索引在elasticsearch中不存在。当使用运行配置文件时,我没有例外。但是,elasticsearch中反映和输入的数据显示了as 的映射。我该如何纠正?以及如何针对多个字段执行此操作? 问题答案: 你有两个问题。首先,您的grok过滤器会在csv过滤器之前列出,并且由于应用了过滤器是为了在应用grok过滤器时不会出现要转换的“基本”字段。 其次,除非您明

  • 问题内容: 我有这个for-in循环: 现在,我希望将按钮强制转换为自定义类,以便可以使用其属性。 我尝试了这个: 但是它不起作用,给我一个错误: 我尝试了这个: 但是,这也不起作用。 问题答案: 对于 Swift 2 和更高版本: Swift 2 在 for 循环中添加了 大小写模式 ,这使得在 for 循环中进行类型转换更加容易和安全: 为什么这比您在 Swift 1.2 和更早版本中可以做的

  • 本文向大家介绍在MySQL中将NULL类型转换为0,包括了在MySQL中将NULL类型转换为0的使用技巧和注意事项,需要的朋友参考一下 您可以借助函数将NULL强制转换为0 。语法如下- 要了解上述概念,让我们首先创建一个表- 让我们插入一些带有NULL值的记录。插入记录的查询如下- 现在,您可以在select语句的帮助下显示所有记录。查询如下- 以下是输出- 应用我们上面看到的语法将NULL类型

  • 在的内部类中。 演员们在这里是怎么工作的?我在这里期待,因为我们要将一个纯超类对象转换为子类。

  • 问题内容: 什么是创建一个唯一约束的正确方法,其中的日期值每秒发生一次; 例子: 试图: 语法无效,但是我要达到的目的是: 尝试未完成-可能是子查询? 问题答案: 我认为您正在寻找演员表的功能形式: 然后,您将获得如下结果: