Eu tenho um objeto chamado Person
.
possui vários atributos;
int id;
String name;
eu defini um objeto de pessoa como Person p = new Person(1,"Joe");
.
1.) Preciso verificar se o objeto não é nulo; A seguinte expressão está correta;
if (person == null){
}
Or
if(person.equals(null))
2.) Preciso saber se o ID contém um Int.
if(person.getId()==null){}
Mas, o java não permite. Como posso fazer essa verificação?
int
é0
?0
. Se você quiser fazer a verificação de nulos. Use wrapper inteiro para isso.Respostas:
Um
int
não é nulo, pode ser0
se não for inicializado.Se você quiser que um inteiro seja nulo, você precisa usar em
Integer
vez deint
.Além disso, a afirmação
if(person.equals(null))
não pode ser verdadeira, porque seperson
for nula, umNullPointerException
será lançado. Portanto, a expressão correta éif (person == null)
fonte
primitivos não têm valor nulo. o padrão tem para um int é 0.
Valores padrão para primitivos em java:
Os objetos têm nulo como valor padrão.
String (ou qualquer objeto) ---> null
o trecho de código acima verifica se pessoa é nula. você precisa fazer
e
O código acima lançaria NullPointerException quando pessoa é nula.
fonte
Um primitivo
int
não pode ser nulo. Se você precisar de null, useInteger
.fonte
SIM . É assim que você verifica se o objeto é
null
.NÃO Como
id
é definido como primitivoint
, será inicializado por padrão com0
e nunca seránull
. Não há necessidade de verificar os tipos primitivos, se eles forem nulos. Eles nunca serão nulos. Se desejar, você pode comparar com o valor padrão0
comoif(person.getId()==0){}
.fonte
Você tem que acessar seus atributos de classe.
Para acessar seus atributos, você deve fazer:
Onde
é uma instância de sua classe Person.
Isso pode ser feito se os atributos puderem ser acessados, caso contrário, você deve usar setters e getters ...
fonte
Você pode usar
além da abordagem regular
fonte
Em Java, não há valores nulos para tipos de dados primitivos. Se você precisar marcar Null, use Integer Class em vez do tipo primitivo. Você não precisa se preocupar com a diferença de tipo de dados. Java converte dados de tipo primitivo int em Inteiro. Quando se trata de memória, o inteiro ocupa mais memória do que o interno. Mas a diferença de alocação de memória, nada a ser considerado.
Neste caso, você deve usar Inter em vez de int
Experimente o snippet abaixo e veja o exemplo para obter mais informações,
`
`
Além disso, você pode atribuir nulo conforme abaixo,
fonte