luni, 2 august 2010

Despre autoboxing

 Începând cu Java 1.5 s-a introdus autoboxing-ul, adică o conversie automată de tip, dintr-o variabilă primitivă, către tipul wrapper corespunzător, sau invers. Folosirea lui este simplă, dacă au fost înțelese bine limitările și riscurile.

package work;
public class Autoboxing {
    public static void main (String [] args){
        //int si Integer raman totusi doua clase diferite:
        System.out.println(int.class);
        System.out.println(Integer.class);
       
        //atentie la overloading!
        metoda(2);
        metoda(Integer.valueOf(2));
        metoda((Integer)3);
       
        Integer i1 = 3, i2 = null;
//compilatorul poate permite "i1 + i2" chiar daca i2 este null
        System.out.println(i1 + i2);
    }  

    public static void metoda(Integer i){
        System.out.println("metoda(Integer i) !");
    }

    public static void metoda(int i){
        System.out.println("metoda(int i) !");
    }
}