Este fragmento arroja un NullPointerException
debido a que se llama unboxed a un tipo primitivo y se llama Long.longValue()
, ¿verdad?Unboxing Null-Object a resultados largos en NullPointerException, ¿está bien?
Eso es incluso fácil para ver si tiene un fragmento de esta manera:
long value = (Long) null;
Pero el NullPointerException
es aún más difícil de conseguir en una situación más compleja como esta:
long propertyValue = (Long) obj.getProperty(propertyModel.getName());
Así ISN' ¿Hay alguna posibilidad de que Java-Compiler haga una Excepción más cómoda de esto? Preferiría un IllegalArgumentException
con un mensaje como "Estás tratando de convertir un objeto nulo en un tipo primitivo, ¡esto no se puede hacer!"
¿No sería esto más apropiado? ¿Qué piensas? ¿Esto es posible incluso en tiempo de ejecución? ¿Podemos determinar este elenco? Todavía no he visto el bytecode de java. Tal vez podría ser utilizado en una solución.
Responde a esta pregunta: Me gustaría saber si es posible lograr este comportamiento.
NPE parece bien a mí. La anotación de Nullability puede ayudar. (** Un ** boxing, btw.) –