Spesso vedo java SourceCode dove non è consentito un valore null come metodo o costruttore. Una tipica implementazione di questo appare comeHa senso verificare automaticamente null in Java
public void someMethod(Object someObject){
if(someObject == null) throw new NullPointerException()
someObject.aMethodCall()
}
non vedo alcun senso per me in quel affatto, perché se tento di chiamare un metodo su un nullpointer il NullPointerException
è gettato in ogni modo. Vedrei un senso se questo metodo genererebbe un IllegalArgumentException o qualche altra eccezione personalizzata. Qualcuno può chiarire, perché questo controllo sembra avere un senso (come vedo molto spesso sto assumendo, che deve esserci un senso dietro), o perché è assurdo completo
Questo è inutile se il comportamento corretto è quello di puntatore nullo (in realtà è peggio dal momento che il controllo richiede una piccola quantità di tempo). – Jim
I controlli nulli espliciti sono economici quanto i controlli nulli impliciti dopo JIT'ing, quindi non mi preoccuperei delle prestazioni qui. –
Possibile duplicato: http://stackoverflow.com/questions/32280/passing-null-to-a-method Preferisco le asserzioni per il controllo della bontà dei parametri, proprio come le precondizioni utilizzate in Ada. – vulkanino