Этот фрагмент выдает NullPointerException
из-за того, что его unboxed на примитивный тип и Long.longValue()
вызывается, правильно?
Это даже легко увидеть, если у вас есть такой сниппет:
long value = (Long) null;
Но NullPointerException
еще сложнее попасть в более сложную ситуацию следующим образом:
long propertyValue = (Long) obj.getProperty(propertyModel.getName());
Итак, нет ли возможности для Java-Compiler сделать из этого более комфортным Исключение? Я бы предпочел IllegalArgumentException
с сообщением типа "Вы пытаетесь применить null-Object в примитивный тип, это невозможно!"
Разве это не было бы более уместным? Как вы думаете? Возможно ли это во время выполнения? Можем ли мы определить этот актерский состав? Я еще не посмотрел на java-байт-код. Возможно, он может быть использован в решении.
На этот вопрос можно ответить. Я хотел бы знать, возможно ли достичь такого поведения!