Punts interessants sobre null en Java

No existeix un programador que no tingui problemes amb null. Tots els llenguatges de programació l’inclouen. Mira aquests punts interessants de null en Java!

En Java, null està associat a java.lang.NullPointerException. Com és una classe en el paquet java.lang, s’invoca quan intentem fer algunes operacions amb o sense null i, de vegades, ni tan sols sabem on ha passat.

A continuació es detallen alguns punts importants sobre null en Java que tot programador de Java ha de saber:

Table de contingut

1. null és Casi sensitive

null és literal en Java i perquè les paraules clau distingeixen entre majúscules i minúscules en java, no podem escriure nULL o 0.

public class Test{ public static void main (String args) throws java.lang.Exception { // error en tiempo de compilación: no se puede encontrar el símbolo 'NULL' Object obj = NULL; //lo siguiente se ejecuta con éxito Object obj1 = null; }}

Sortida:

error: cannot find symbol can't find symbol 'NULL' ^ variable NULL class Test1 error

2. valor de variable de referència

Qualsevol variable de referència en Java té un valor predeterminat nul.

public class Test{ private static Object obj; public static void main(String args) { // imprimira nulo; System.out.println("El valor del objeto obj es : " + obj); } }

Sortida:

El valor del objeto obj es : null

3. Tipus d’null

A diferència de la idea errònia comuna, null no és un objecte ni un tipus. És només un valor especial, que es pot assignar a qualsevol tipus de referència i es pot castear null a qualsevol tipus.

Exemples:

// null se puede asignar a String String str = null; // tambien puedes asignar null a Integer Integer itr = null; // null también se puede asignar a Double Double dbl = null; //null se puede castear a String String myStr = (String) null; // también puede ser casteado a Integer Integer myItr = (Integer) null; // si es posible, no hay error Double myDbl = (Double) null;

4. Autoboxing i sense caixa

Durant les operacions d’auto-boxing i unboxing, el compilador simplement llança un error d’excepció Nullpointer si s’assigna un valor nul a el tipus de dades en requadre primitiu.

public class Test{ public static void main (String args) throws java.lang.Exception { //Un número entero puede ser nulo, así que esto está bien Integer i = null; //Unboxing null a integer lanza NullpointerException int a = i; }}

Sortida:

Exception in thread "main" java.lang.NullPointerException at Test.main

5. operador instanceof

l’operador instanceof de Java s’usa per provar si l’objecte és una instància de l’tipus especificat (classe, subclasse o interfície). En temps d’execució, el resultat de l’operador instanceof és veritable si el valor de l’expressió no és nul.

Aquesta és una propietat important de l’operació instanceof, que el fa útil per a les verificacions de conversió de tipus .

Exemple:

public class Test{ public static void main (String args) throws java.lang.Exception { Integer i = null; Integer j = 10; //imprime false System.out.println(i instanceof Integer); //Compila con exito System.out.println(j instanceof Integer); }}

Sortida:

falsetrue

6. Mètodes estàtics vs no estàtics

no podem trucar a un mètode no estàtic en una variable de referència amb valor nul, llançarà NullPointerException, però podem trucar a mètode estàtic amb variables de referència amb valors nuls.

Com que els mètodes estàtics estan vinculats mitjançant l’enllaç estàtic, no llançaran NullPointerException.

public class Test{ public static void main(String args) { Test obj= null; obj.staticMethod(); obj.nonStaticMethod(); } private static void staticMethod() { //Puede ser llamado por referencia nula System.out.println("metodo estatico, puede ser llamado por referencia nula"); } private void nonStaticMethod() { //Can not be called by null reference System.out.print(" Metodo no estatico- "); System.out.println("no puede ser llamado por referencia nula"); } }

Sortida:

Deixa un comentari

L'adreça electrònica no es publicarà. Els camps necessaris estan marcats amb *