Dúvida NullPointerException[Resolvido]

Bom dia a todos,

tenho dois objetos, A e B.

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?

Oi!

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.

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

public class Teste {
    static Teste x;
    public String doSomething() { return "Ipeeeee!"; }

    public static  void main(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:

public class Teste {
    static Teste x = new Teste(); // AHHHH, agora sim! Eu sei que x contém uma *nova instância* de teste.
    public String doSomething() { return "Ipeeeee!"; }

    public static  void main(String[] args) {

        x.doSomething(); // agora vai funcionar.
 }

Perdão,

O que eu realmente quiz dizer foi;

objA.setNome(objB.getNome());

Coloca o código todo, as vezes (bem as vezes) pelo erro estar bem definido como NullPointer, pode ser em outro lugar, não?

[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.

já resolvi, estava usando uma referencia errada. Na verdade o objeto estava nulo.

Obrigado pela ajuda.