9 lucruri despre NULL în Java.
9 lucruri despre Nul în Java
Java nulă și indisolubil legate. Nu este greu orice Java-programator, nu să se întâlnească cu „excepție pointer nul“ și este un fapt trist. Chiar și inventatorul conceptului de „nul“, a numit-greșeala lui într-un miliard de dolari, atunci de ce Java suportă? nul a fost aici o lungă perioadă de timp, și cred că, creatorii Java știu că creează mai multe probleme decât rezolvă, așa că de ce ei încă pus cu ea. Și mă surprinde chiar mai mult, pentru că filozofia Java a fost de a simplifica lucrurile, care este motivul pentru care nu mai sunt ocupați cu indicii, supraîncărcarea operatorului și moștenirea multiplă, dar de ce este nul.
Ei bine, eu chiar nu știu răspunsul la această întrebare, dar ceea ce știu, nu contează cât de multe nul criticat Java-programatori si comunitatea open-source, trebuie să trăim cu ea. În loc de regret, este mai bine pentru a afla mai multe și pentru a fi siguri că vom folosi nul corect.
De ce trebuie să știți despre nul în Java?
Pentru că, dacă nu acorde atenție la nul. Asigurați-vă că, Java va suferi de java.lang.NullPointerException teribil și vei învăța această lecție, dar mult mai dificil de a merge prin. Scrisul este rezistent la „căderea“ de cod este o artă - și echipa ta, clienții și utilizatorii vor aprecia. În experiența mea, una dintre cauzele principale NullPointerException este lipsa de cunoștințe despre nul în Java. Mulți dintre voi sunteți deja familiarizați cu nul, restul pot afla unele dintre cele mai vechi și noi lucruri despre cuvântul cheie NULL. Să repete sau să învețe câteva lucruri importante despre nul în Java.
Ce este nul în Java
Așa cum am spus, nul este foarte, concept foarte important în Java. Acesta a fost inițial inventat pentru a indica absența a ceva, de exemplu, lipsa unui utilizator, resurse, sau orice altceva, dar în ultimul an a nedumerit Java-programatori multiple excepție pointer nul. In acest tutorial, vom învăța faptele de bază despre cuvântul cheie NULL în Java, să învețe câteva trucuri despre cum să evite probleme cu excepții pointer nul și pentru a minimiza nul de verificare.
- În primul rând lucrurile în primul rând, null este un cuvânt cheie în Java, precum și publice. statică sau finală. -Sensibil caz, nu puteți scrie nul ca NULL sau NULL. compilatorul nu recunoaște și va fi aruncat de eroare.
De multe ori, acest lucru întâlni programatori care au trecut de la alte limbaje de programare, dar folosind problema moderne IDE devine nesemnificativ. Astăzi, IDE cum ar fi Eclipse sau NetBeans poate corecta această greșeală în timp ce tastați codul, dar în epoca Notepad. Vim și Emaks. a fost o problemă comună, care ar putea mânca o mulțime de timp prețios.
Acest lucru este valabil atât pentru obiecte statice și non-statice, după cum puteți vedea aici, am făcut referință myObj statică, astfel încât să pot folosi în mod direct în principala metodă, care este o metodă statică și nu permite accesul la variabile non-statice din interior.
După cum puteți vedea, exprimate nul pentru orice tip de referință este de succes atât la momentul compilarii și în timpul rulării. Spre deosebire de ceea ce ar putea crede mulți dintre voi nu va duce la ejectarea NullPointerException.
După cum puteți vedea, când vom atribui direct nul primitiv, atunci vom obține un proces de eroare de compilare, dar, dacă atribuiți un obiect de clasă înveliș nul, iar apoi atribuiți obiectului la tipul primitiv corespunzător, compilatorul nu răspunde, dar vom fi răsplătiți excepție pointer nul în timpul performanță. Acest lucru se datorează ambalajului auto (autoboxing) (autoboxing) în Java, și ne vom întâlni cu el în paragraful următor.
Dar, atunci când executați acest fragment de cod, veți vedea în consolă
Acest lucru se întâmplă adesea atunci când se utilizează HashMap și tasta Integer. Rularea codul afișat mai jos va fi întreruptă imediat ce ați începe.
Acest cod arata foarte simplu si inofensiv. Tu doar conta numărul de ori numărul găsit în matrice, tehnica clasică de a găsi duplicate. Dezvoltatorul numărul anterior numărate, incrementeaza de unul și introduce din nou în hartă. El ar fi crezut că-pachet auto va avea grijă de conversie Integer în Int. așa cum se face în timpul unui apel pentru a pune (). dar el uită că, dacă numărul count nu a fost încă realizat, pentru a primi (), metoda se întoarce de la HashMapnull. nu zero, deoarece valoarea implicită pentru Integer este nul. în loc de 0 și de auto-ambalare aruncă excepție pointer nul atunci când încearcă să convertească Integer la o variabilă int.
Aceasta este o proprietate importantă a operatorului instanceof. ceea ce îl face util pentru a verifica exprimate.
Acesta poate fi invocat
Acest lucru este normal din punct de vedere al compilatorului, dar comportamentul ulterior depinde în întregime de metoda. Metoda-Nul în condiții de siguranță nu va arunca NullPointerException. ci pur și simplu completat corect. În cazul în care logica de afaceri permite, se recomandă să scrie metode nule în condiții de siguranță.