Boxing

3 respostas
Y
public class Box {

    static void go(Object o){
    Byte b = (Byte) o;
        System.out.println(b);
    }
    public static void main(String[] args) {
        byte b = 5;
        go(b);
    }

}

Poderiam me explicar pq eu posso passar um tipo primitivo no metodo 'go'

grato

3 Respostas

mapleplayer

Porque quando você passo byte 5 para o método, tal byte é transformado em um Byte através de boxing e um Byte pode ser referênciado como sendo um Object

Tiburcio_Mancha

Pq todas as classes extendem Object, inclusive as wrapper. O objeto Byte passa no teste É UM para Object, assim em tempo de execução o boxing é realizado!

mews

Exatamente como Tiburcio_Mancha falou,

Todas as classe extendem object em Java e o object permite você fazer o cast para byte.

Criado 29 de dezembro de 2010
Ultima resposta 30 de dez. de 2010
Respostas 3
Participantes 4