por que isso não funciona?
Integer i = new Integer(3);
Double z = i;
por que isso não funciona?
Integer i = new Integer(3);
Double z = i;
Os limites inferior e superior comportados por um Double são maiores que os limites comportados por um int. Para saber os extremos dos dois, utilize:
[code]System.out.println(Double.MAX_VALUE);
System.out.println(Double.MIN_VALUE);
System.out.println(Integer.MAX_VALUE);
System.out.println(Integer.MIN_VALUE);[/code]
ok?
Porque Integer é um número inteiro e Double um flutuante?
São objetos distintos que armazenam valores diferentes.
Atualizando: e fique atento ao que o renamed disse, o tamanho de armazenamento deles são diferentes.
Abraços!
e porque isso funciona?
int i = 1;
double d = i;
Releia minha resposta
por que isso NÃOfunciona?
Integer i = new Integer(3);
Double z = i;
e porque isso funciona?
int i = 1;
double d = i;
Se vocês faz:
Integer i = 1;
double d = i;
Não funciona pois está tentando colocar dentro do double um objeto diferente, ou seja, incompatível. Se faz:
int i = 1;
double d = 1;
Ele aceita pois int é do tipo primitivo, ou seja, não se trata de um Object e sim de um valor.
Mas para o caso do Integer, a solução é esta:
Integer i = 1;
double d = i.intValue();
Abraços!
Olá
Qualquer coisa da uma olhada nas classes wrappers e em regras de boxing.
Espero ter ajudado
[]'s
Obrigado Marcos !