Duvida em conversoes  XML
Índice dos Fóruns » Certificação Java
Autor Mensagem
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
Omeganosferatu
JavaEvangelist
[Avatar]

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 )
[ICQ]
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
nbluis
GUJ Master
[Avatar]

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.
[WWW]
Omeganosferatu
JavaEvangelist
[Avatar]

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 )
[ICQ]
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
Omeganosferatu
JavaEvangelist
[Avatar]

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 )
[ICQ]
RafaelVS
JavaEvangelist
[Avatar]

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%)
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
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/
[WWW]
Omeganosferatu
JavaEvangelist
[Avatar]

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 )
[ICQ]
 
Índice dos Fóruns » Certificação Java
Ir para:   
Powered by JForum 2.1.8 © JForum Team