Избягване на !=null

+5 гласа
81 прегледа
попитан 2016 юни 22 в Java от Nikola.Nikolov. (3,100 точки)

Често ми се налага да проверявам дали един обект е !=null преди да го позлвам докато програмирам, като целта ми е да избягам NullPointerException. 

(http://docs.oracle.com/javase/6/docs/api/index.html?java/lang/NullPointerException.html)  

Намирам кода за грозен и нечетлив, има ли някаква алтернатива на това нещо? 

Искам да отбележа нуждата да тествам всеки обект -например ако искаш да имаш достъп към някакво поле или метод от този обект: 

if (someobject != null) { 

    someobject.doCalc(); 

В този случай ще избягам NullPointerException-а и не знам със сигурност дали обекта е null или не. 

Тези тестове сa навсякъде в кода ми. Помощ. 

Благодаря предварително. 

1 отговор

0 гласа
отговорени 2016 юни 22 от VeskoNikolov (1,630 точки)
редактиран 2016 юни 22 от VeskoNikolov

Не е необходимо да правиш онези шмекерии със != null. Остави го да си излезе NullPointerException и след това просто го хвани (или catch -ни). Това е правилният начин да се работи с exception от всякакъв вид (не само nullpointer) и става  ето така: 

Object obj = null;

try{

    //Ако някъде при кода, който е в try се появи NullPointerException, то ще се изпълни catch кода
    //примерно този код винаги генерира такъв exception
    obj.hashCode();

}catch(NullPointerException e){

    //понеже се генерира ексепшън се изпълнява този код.
    System.out.println("karuca");

}
...