这段代码由于拆箱为基本类型并调用了Long.longValue()
,会抛出NullPointerException
异常,对吧?
如果你有类似下面的代码片段,很容易看出来:
long value = (Long) null;
但是在更复杂的情况下,像这样,NullPointerException
更难被获得:
long propertyValue = (Long) obj.getProperty(propertyModel.getName());
那么Java编译器有没有可能将其转换为更舒适的异常呢?我更喜欢一个带有消息“您正在尝试将null对象转换为原始类型,这是不可能的!”的
IllegalArgumentException
。
这样会更合适吗?你认为这可能吗?在运行时我们能确定这个转换吗?我还没有查看Java字节码。也许它可以用于解决方案。
这个问题可以回答:我想知道是否有可能实现这种行为!