Ambos possuem atributos equivalentes. A String nome - B String nome.
Quando o atributo de A recebe o valor do atributo de B e o ultimo é nulo, é disparada uma NullPointerException.
objA.setNome()=objB.getNome();
Se os dois atributos são objetos do tipo String, por que um não aceita o nulo do outro? Por exemplo, se eu escrever objA.setNome = null; não ocorre erro. Porque da outra forma ocorre erro se o valor a ser passado é o mesmo?
99% dos métodos set, você passa o valor no método e não faz algo do tipo
objA.setName() = "nome";
//Faz isso aqui
objA.setName("nome");
Isso aqui:
objB.getName();
Só vai lançar uma NullPointerException se por acaso você efetuar alguma manipulação com o valor que será retornado no método get OU se o objB for nulo.
Caso contrário, não vai lançar esse tipo de exceção.
Abraços.
A
abmpicoli
Na verdade,
objA.setNome()=objB.getNome()
Nem compila, porque o lado esquerdo do sinal de igual não é uma variável… A não ser que você não esteja programando em java.
NullPointerException é geralmente um problema de fé: você vai na fé de que alguma coisa está inicializada mas não está. Por exemplo, no código abaixo
publicclassTeste{
staticTestex;publicStringdoSomething(){return"Ipeeeee!"; }publicstaticvoidmain(String[]args){
x.doSomething(); // não vai funcionar. Ninguém falou o que tem no x, só o tipo de coisa que x pode ter...}
A correção:
publicclassTeste{staticTestex=newTeste();// AHHHH, agora sim! Eu sei que x contém uma *nova instância* de teste.publicStringdoSomething(){return"Ipeeeee!";}publicstaticvoidmain(String[]args){x.doSomething();// agora vai funcionar.}
juceliohv
Perdão,
O que eu realmente quiz dizer foi;
objA.setNome(objB.getNome());
denisspitfire
Coloca o código todo, as vezes (bem as vezes) pelo erro estar bem definido como NullPointer, pode ser em outro lugar, não?
nel
[quote=juceliohv]Perdão,
O que eu realmente quiz dizer foi;
objA.setNome(objB.getNome());
Há três opções para dar NullPointerException ai:
1 - objA = null
2 - objB = null
3 - Alguma manipulação de valor nulo dentro do método getNome() do objB.
Agora é tu investigar qual das três (senão as 3) possibilidades é o que causa o erro.
Abraços.
juceliohv
já resolvi, estava usando uma referencia errada. Na verdade o objeto estava nulo.