Dado:
[code]public class MinhaClasse{
public int att;
}
public interface ARemote{
public void metodo(MinhaClasse m);
}
@Stateless
@Remote(ARemote.class)
public class ABean implements ARemote{
public void metodo(MinhaClasse m){
m.att=2;
}
}
@Stateless
@Remote(OutroRemote.class)
public class OutroBean implements OutroRemote{
@EJB
ABean abean;
public void outrometodo(){
MinhaClasse m = new MinhaClasse();
m.att=1;
abean.metodo(m);
System.out.println(m.att);
}
}
[/code]
Eu acho que OutroBean.outrometodo() imprime 2, mas o livro diz que imprime 1. Alguém sabe porque?
Valeu
abraços
Kra, não sou muito experiente em Java,
mas, cade o new do ABean?
otra, debuga ele q vc descobre sozinho
Vale lembrar que em Java, passamos uma cópia como argumento para o método. Então, a atribuição de m.att = 2, no Bean não tem efeito sobre o valor do atributo da classe MinhaClasse.
Logo será apresentado 1, como resultado.
Talvez eu num fui muito claro.
Abrazz.
[quote=marcusmage]Vale lembrar que em Java, passamos uma cópia como argumento para o método. Então, a atribuição de m.att = 2, no Bean não tem efeito sobre o valor do atributo da classe MinhaClasse.
Logo será apresentado 1, como resultado.
Talvez eu num fui muito claro.
Abrazz.[/quote]
Você está errado.
Para primitivos é passado uma cópia, para Objetos é passada uma referência ao objeto.
Ha! Pegadinha do Malandro…
Vai dar 2 mesmo…A lógica dessa questão está muito mais para prova SCJP que a SCBCD…