A menudo veo java SourceCode donde no se permite un valor nulo como valor para un método o constructor. Una aplicación típica de esto parece¿Tiene sentido realizar una autoverificación de nulo en Java
public void someMethod(Object someObject){
if(someObject == null) throw new NullPointerException()
someObject.aMethodCall()
}
veo ningún sentido para mí en eso en absoluto, porque si intenta llamar a un método en un NullPointer la NullPointerException
se tira de todos modos. Me gustaría ver un sentido si este método arrojaría una IllegalArgumentException o alguna otra excepción hecha a medida. ¿Puede alguien aclarar, por qué este cheque parece tener sentido (como lo veo muy a menudo estoy asumiendo, que tiene que haber sentido detrás de eso), o por qué es un completo sinsentido
Esto es inútil si el comportamiento correcto es anular el puntero (de hecho, es peor ya que la verificación lleva un tiempo pequeño). – Jim
Las comprobaciones nulas explícitas son tan baratas como las verificaciones nulas implícitas después de JIT, por lo que no me preocuparía el rendimiento aquí. –
Posible duplicado: http://stackoverflow.com/questions/32280/passing-null-to-a-method Prefiero las afirmaciones para la comprobación de la bondad de los parámetros, al igual que las condiciones previas se usan en Ada. – vulkanino