这个片段抛出一个NullPointerException
由于它被取消装箱为原始类型并被Long.longValue()
调用的事实,对吧?
如果您有这样的片段,那甚至很容易看到:
long value = (Long) null;
但是NullPointerException
在这样的更复杂的情况下更难:
long propertyValue = (Long) obj.getProperty(propertyModel.getName());
那么Java-Compiler是否有可能从中产生更舒适的异常?我更喜欢这样IllegalArgumentException
的消息,例如“您正在尝试将 null-Object 转换为原始类型,这无法完成!”
这不是更合适吗?你怎么看?这在运行时甚至可能吗?我们能确定这个演员吗?我还没有看过java字节码。也许它可以用于解决方案。
这个问题可以回答:我想知道是否有可能实现这种行为!