Tengo un objeto llamado Person
.
tiene varios atributos en él;
int id;
String name;
puse un objeto de persona como Person p = new Person(1,"Joe");
.
1.) Necesito comprobar si el objeto no es nulo; ¿Es correcta la siguiente expresión?
if (person == null){
}
Or
if(person.equals(null))
2.) Necesito saber si el ID contiene un Int.
if(person.getId()==null){}
Pero java no lo permite. ¿Cómo puedo hacer esta verificación?
int
es0
?0
. Si desea hacer la verificación nula. Use la envoltura Integer para eso.Respuestas:
An
int
no es nulo, puede ser0
si no se inicializa.Si desea que un entero pueda ser nulo, debe usar en
Integer
lugar deint
.Además, la declaración
if(person.equals(null))
no puede ser verdadera, porque siperson
es nula, seNullPointerException
lanzará a. Entonces la expresión correcta esif (person == null)
fuente
las primitivas no tienen valor nulo. el valor predeterminado para un int es 0.
Valores predeterminados para primitivas en java:
Los objetos tienen nulo como valor predeterminado.
Cadena (o cualquier objeto) ---> nulo
la pieza de código anterior verifica si la persona es nula. necesitas hacer
y
El código anterior arrojaría NullPointerException cuando la persona es nula.
fuente
Un primitivo
int
no puede ser nulo. Si necesita null, utiliceInteger
en su lugar.fuente
SI . Así es como verificas si el objeto es
null
.NO Dado que
id
se define como primitivoint
, se inicializará por defecto con0
y nunca lo seránull
. No es necesario comprobar los tipos primitivos, si son nulos. Nunca serán nulos. Si lo desea, puede comparar con el valor predeterminado0
comoif(person.getId()==0){}
.fuente
Tienes que acceder a los atributos de tu clase.
Para acceder a sus atributos, debe hacer:
dónde
es una instancia de tu clase Person.
Esto se puede hacer si se puede acceder a los atributos, si no, debe usar setters y getters ...
fuente
Puedes usar
además del enfoque regular
fuente
En Java no hay valores nulos para tipos de datos primitivos. Si necesita marcar Null, use Integer Class en lugar de primitive type. No necesita preocuparse por la diferencia de tipos de datos. Java convierte datos de tipo primitivo int a Integer. Cuando se trata de la memoria, Integer ocupa más memoria que int. Pero la diferencia de asignación de memoria, nada que considerar.
En este caso debes usar Inter en lugar de int
Pruebe el siguiente fragmento y vea el ejemplo para obtener más información,
'
'
También puede asignar Null como se muestra a continuación,
fuente