Bom, estou depurando um código em java (no eclipse) e quando eu instancio o classe Teller e passo o mouse em cima do objeto teller, ele aparece como NULL, veja:
Se o breakpoint estiver na linha 01 (do seu codigo postado no forum), ele ficará nulo mesmo,
agora se tiver na linha 02, ai realmente tem algo estranhamente errado
R
rlanhellas
Então tem algo errado pois esta na linha 02.
R
rlanhellas
Creio que por causa deste problema é que estou recebendo o erro abaixo do HIBERNATE.
Tente dar um clean no projeto (project > clean) e certifique-se que o build está em automático.
O eclipse, por vezes, se perde quanto à atualizações de código e isso pode ocasionar teu problema.
Outra opção é, caso a classe Teller tenha sido escrita por ti, debugue o método construtor (se está usando o default, crie um sem argumentos).
R
rlanhellas
Bom, dei um clean no projeto e testei e não funcionou. Então criei um construtor explicitamente sem argumentos e o debuguei, mas também da o mesmo problema.
drsmachado
Tem algo muito errado aí.
R
rlanhellas
Possivelmente !
R
rlanhellas
Assim, só pra deixar claro: O objeto é criado com todos seus atributos normalmente, a única questão é saber se é normal no DEBUG aparecer essa linha: br.com.sysvar.bean.Teller#null .
Pois lembro-me de uma vez ter depurado um objeto e ter algo tipo:
br.com.sysvar.bean.MeuObjeto#1234342
Ou seja, tinha um ID (número) logo após o hashtag e não um NULL.
drsmachado
Não é normal, definitivamente.
R
rlanhellas
Bom, se não é normal ter um NULL após o “#”, continuemos a luta para a solução. Conto com a ajuda de vocês.
drsmachado
Agora que eu me liguei, pode ser que o valor null esteja sendo atribuído pura e simplesmente por ser um objeto de um Integer ou Long que ainda não foi valorado.
Como assim?
Imagine que você tem o método toString sobrescrito para este objeto (ou para seu ancestral mais próximo) e que neste método o retorno seja algo como
publicStringtoString(){
returnid+"";
}
Se id é um tipo Long ou Integer (ou Short) e não tem valor associado a ele, ele é nulo.
R
rlanhellas
Estranho, porque fiz um teste aqui da seguinte forma: Essa Classe que ta dando #null estende de uma outra, então tirei o extends dela e debuguei denovo objeto, e pra minha surpresa olha o que ela retornou:
br.com.bean.Teller@abefcf6
saiu o NULL. O que pode ser isso ? Esta Classe tem seu próprio construtor (não herda da classe pai).
drsmachado
Significa que o que eu suspeitava está certo.
O toString da superclasse é quem está devolvendo o que você via no debug.
Quando você não tem um toString, o default informa algo como o que você acabou de ver, com o nome completo da classe @ algum número.
R
rlanhellas
Entendi, mas porque do erro no hibernate falando : null identifier ?