| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/06/2007 08:57:15
|
geraldobarboza
JavaTeenager
Membro desde: 22/05/2005 15:24:41
Mensagens: 150
Offline
|
Bom tou mais confuso do que antes após ler o cap 3 do livro rsrsrs
minha duvida é a seguinte,
no código abaixo é valido:
mas quando tenho um método que recebe shor, deixa de ser valido eu passar apenas o 7 para ele.. ex:
Todos literais inteiros sao int por padrão, mas pq posso atribuir a uma variavel o 7 e não posso fazer o mesmo em um método?
[]'s
Geraldo
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/06/2007 10:10:06
|
Omeganosferatu
JavaEvangelist
![[Avatar]](/images/avatar/47a0a618c0365cf757ff3021ee5ef976.jpg)
Membro desde: 05/01/2007 10:13:24
Mensagens: 328
Localização: São Paulo
Offline
|
Aproveitando o topico ... to com uma duvida relacionada a cast btm, nao sei se é em funçao da minha febre que nao to conseguindo raciocinar
por que eu nao posso fazer um cast de um char para um Object ???
Ou simplesmente
Isso nao compila.;. por que /
|
Sun Certified Java Programmer
Sun Certified Java Developer
The death of one is a tragedy, but death of a million is just a statistic ( Joseph Stalin ) |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/06/2007 10:20:50
|
geraldobarboza
JavaTeenager
Membro desde: 22/05/2005 15:24:41
Mensagens: 150
Offline
|
Omeganosferatu wrote:Aproveitando o topico ... to com uma duvida relacionada a cast btm, nao sei se é em funçao da minha febre que nao to conseguindo raciocinar
por que eu nao posso fazer um cast de um char para um Object ???
Ou simplesmente
Isso nao compila.;. por que /
pq char nao é um objeto.. e sim um primitivo... acho q é isso, ou estou engando?
[]'s
Geraldo
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/06/2007 10:23:17
|
nbluis
GUJ Master
![[Avatar]](/images/avatar/f0682320ccbbb1f1fb1e795de5e5639a.jpg)
Membro desde: 27/05/2006 01:31:51
Mensagens: 1531
Localização: Porto Alegre - RS
Offline
|
Está certo.
tu pode criar um Objeto Character.
|
Luis Eduardo Bohrer
Any fool can write code that a computer can understand. Good programmers write code that humans can understand. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/06/2007 10:33:36
|
Omeganosferatu
JavaEvangelist
![[Avatar]](/images/avatar/47a0a618c0365cf757ff3021ee5ef976.jpg)
Membro desde: 05/01/2007 10:13:24
Mensagens: 328
Localização: São Paulo
Offline
|
Ahh podi cre... pensei nisso tambem, mas como no meu caso é um Array primitivo ja abandonei essa idéia. Fiz com substring mesmo dentro de um laço... Valeu galera
|
Sun Certified Java Programmer
Sun Certified Java Developer
The death of one is a tragedy, but death of a million is just a statistic ( Joseph Stalin ) |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/06/2007 10:42:07
|
geraldobarboza
JavaTeenager
Membro desde: 22/05/2005 15:24:41
Mensagens: 150
Offline
|
geraldobarboza wrote:Bom tou mais confuso do que antes após ler o cap 3 do livro rsrsrs
minha duvida é a seguinte,
no código abaixo é valido:
mas quando tenho um método que recebe shor, deixa de ser valido eu passar apenas o 7 para ele.. ex:
Todos literais inteiros sao int por padrão, mas pq posso atribuir a uma variavel o 7 e não posso fazer o mesmo em um método?
[]'s
Geraldo
hehehe só pra lembrar q essa ainda nao teve resposta....
[]'s
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/06/2007 11:22:57
|
Omeganosferatu
JavaEvangelist
![[Avatar]](/images/avatar/47a0a618c0365cf757ff3021ee5ef976.jpg)
Membro desde: 05/01/2007 10:13:24
Mensagens: 328
Localização: São Paulo
Offline
|
A explicação exata eu nao sei mas acho que é justamente por padrão ele ser um int. Quando você atribui ele entende que aquilo será um short. Mas quando é passado no método ele o enxerga como int ... se você fizer um cast (short) 7 ... funciona tambem.
Estranho mas faz sentido.
|
Sun Certified Java Programmer
Sun Certified Java Developer
The death of one is a tragedy, but death of a million is just a statistic ( Joseph Stalin ) |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/06/2007 12:51:31
|
RafaelVS
JavaEvangelist
![[Avatar]](/images/avatar/50454f95bbf5e6478cc0a55d08338731.jpg)
Membro desde: 13/12/2006 09:50:16
Mensagens: 405
Localização: Recife - PE
Offline
|
Na verdade, short s = 7; funciona porque excepcionalmente em operações de atribuição, o compilador coloca o cast implicitamente, ou seja... o compilador vai interpretar essa linha como short s = (short) 7;
como você está passando o literal 7 (que, por default, é int) como argumento de um método que espera um short, o compilador não fará essa conversão implicitamente (pois, como falei, isso só acontece na atribuição) e, naturalmente, dá erro de compilação.
[]'s
|
- Mestrando em Engenharia de Software no CIn/UFPE;
- Pós-Graduado em Engenharia de Software na POLI/UPE;
- Bacharel em Ciência da Computação na UNICAP (Universidade Católica de Pernambuco);
- Sun Certified Programmer for the Java 2 Platform, Standard Edition 5.0 (score 95%);
- Sun Certified Web Components Developer for J2EE 1.4 Platform (score 89%) |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/06/2007 12:59:13
|
geraldobarboza
JavaTeenager
Membro desde: 22/05/2005 15:24:41
Mensagens: 150
Offline
|
RafaelVS wrote:Na verdade, short s = 7; funciona porque excepcionalmente em operações de atribuição, o compilador coloca o cast implicitamente, ou seja... o compilador vai interpretar essa linha como short s = (short) 7;
como você está passando o literal 7 (que, por default, é int) como argumento de um método que espera um short, o compilador não fará essa conversão implicitamente (pois, como falei, isso só acontece na atribuição) e, naturalmente, dá erro de compilação.
[]'s
hum.... agora entendi....
o cast é feito implicitamente apenas nas atribuições.. e nos métodos tem que estar explicito...
valew
[]´s
Geraldo Barboza
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/06/2007 17:25:32
|
LPJava
GUJ Hacker
Membro desde: 18/04/2006 12:50:23
Mensagens: 5524
Localização: Bahia/Porto Alegre
Offline
|
Omeganosferatu wrote:Ahh podi cre... pensei nisso tambem, mas como no meu caso é um Array primitivo ja abandonei essa idéia. Fiz com substring mesmo dentro de um laço... Valeu galera
so uma dica seu array, nao é primitivo, ele apenas aceita elementos do tipo primitivo, mas no fundo ele é um objeto.. array sempre é um objeto... sei que isso pode ser ridiculo.. mas no exame teve uma pegadinha como essa.. envolvendo Wrapper misturados com primitivos...
|
Sun Certified Java Programmer 5.0
Blog:http://www.camilolopes.com
Twitter:www.twitter.com/camilolope
Linkedin: http://br.linkedin.com/in/camilolopes
Curso online OCPJP: http://pro.imasters.com.br/online/cursos/preparatorio-para-certificacao-java-ocjp
Autor livro Guia SCJP & JEE c/ Frameworks: http://blog.camilolopes.com.br/livrosrevistaspalestras/
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/06/2007 08:58:41
|
Omeganosferatu
JavaEvangelist
![[Avatar]](/images/avatar/47a0a618c0365cf757ff3021ee5ef976.jpg)
Membro desde: 05/01/2007 10:13:24
Mensagens: 328
Localização: São Paulo
Offline
|
é eu me expressei mal .. um array de tipos primitivos .. =)....
|
Sun Certified Java Programmer
Sun Certified Java Developer
The death of one is a tragedy, but death of a million is just a statistic ( Joseph Stalin ) |
|
|
 |
|
|