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

在Java中使用null进行类型转换时没有异常

屠兴旺
2023-03-14
问题内容
String x = (String) null;

为什么这句话没有例外?

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

它打印null。但是.toString()方法应该抛出一个空指针异常。


问题答案:

您可以转换null为任何引用类型,而不会出现任何异常。

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

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

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

为了避免混淆,如果不是特殊情况,则在null对象上调用任何方法都应引发null指针异常。



 类似资料:
  • 为什么这种说法没有例外? 它将打印。但方法应引发空指针异常。

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

  • 这是来自Java 以下是我的Java环境: java版本"1.8.0_60" Java(TM)SE运行时环境(build 1.8.0_60-b27) JavaHotSpot(TM)64位服务器VM(构建25.60-b23,混合模式)

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

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

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