JAVA中对null进行强制类型转换

Posted 三豪

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA中对null进行强制类型转换相关的知识,希望对你有一定的参考价值。

今天很好奇,对null进行强转会不会抛错。做了如下测试得到的结果是,如果把null强转给对象,是不会抛异常的,本身对象是可以为null的。但是如果是基本类型,比如 int i = (Integer)obj的强转,其实内部会调用intvalue方法去赋值给基本类型,所以这时候是会报错的。

代码如下

Object obj = null;
Integer s1 = (Integer)obj;

上面能正常执行,即把null赋值给一个对象或者强行类型转换赋值给对象都是没有问题的。如果s1是 int的基本类型呢?
代码如下,编译时不会报错

 

 

int s1 = (Integer)obj;
System.out.println(s1);

执行,则报java.lang.NullPointerException错误。
我们反编译后会发现调用了 intValue方法去获取value,所以抛出空指针错误:
Object obj = null;
int s1 = ((Integer)obj).intValue();
System.out.println(s1);
---------------------

原文:https://blog.csdn.net/hebixi/article/details/52176014

以上是关于JAVA中对null进行强制类型转换的主要内容,如果未能解决你的问题,请参考以下文章

java 中各种数据类型转换byte[]的方法

怎样让vs2013不进行强制类型转换

Web | JavaScript的引用数据类型强制转换类型

null 不能强制转换为非 null 类型 kotlin.String NullPointer 异常

java中如何进行安全的类型转换

java中的强制类型转换