Java Language Différents cas où Integer et int peuvent être utilisés indifféremment


Exemple

Cas 1: En utilisant à la place des arguments de méthode.

Si une méthode nécessite un objet de classe wrapper en tant qu'argument.Alors de manière interchangeable, l'argument peut être passé à une variable du type primitif respectif et vice versa.

Exemple:

int i;
Integer j;
void ex_method(Integer i)//Is a valid statement
void ex_method1(int j)//Is a valid statement

Cas 2: Lors du passage des valeurs de retour:

Lorsqu'une méthode retourne une variable de type primitive, un objet de la classe wrapper correspondante peut être transmis comme valeur de retour de manière interchangeable et inversement.

Exemple:

int i;
Integer j;
int ex_method()
{...
return j;}//Is a valid statement
Integer ex_method1()
{...
return i;//Is a valid statement
}

Cas 3: lors des opérations.

Chaque fois que l'on effectue des opérations sur des nombres, la variable de type primitif et l'objet de la classe d'encapsulation respective peuvent être utilisés indifféremment.

int i=5;
Integer j=new Integer(7);
int k=i+j;//Is a valid statement
Integer m=i+j;//Is also a valid statement

Piège : N'oubliez pas d'initialiser ou d'attribuer une valeur à un objet de la classe wrapper.

Lorsque vous utilisez un objet de classe wrapper et une variable primitive de manière interchangeable, n'oubliez jamais ou omettez d'initialiser ou d'attribuer une valeur à l'objet de classe wrapper. Sinon, cela peut entraîner une exception de pointeur nul lors de l'exécution.

Exemple:

public class Test{
    Integer i;
    int j;
    public void met()
    {j=i;//Null pointer exception
    SOP(j);
    SOP(i);}   
    public static void main(String[] args)
    {Test t=new Test();
    t.go();//Null pointer exception
    }

Dans l'exemple ci-dessus, la valeur de l'objet est non affectée et non initialisée. Par conséquent, à l'exécution, le programme s'exécutera avec une exception de pointeur nul. Ainsi, la valeur de l'objet ne devrait jamais être non initialisée et non attribuée.