J'ai un objet appelé Person
.
il a plusieurs attributs en lui;
int id;
String name;
je mets un objet personne comme Person p = new Person(1,"Joe");
.
1.) Je dois vérifier si l'objet n'est pas nul; L'expression suivante est-elle correcte?
if (person == null){
}
Or
if(person.equals(null))
2.) J'ai besoin de savoir si l'ID contient un Int.
if(person.getId()==null){}
Mais, java ne le permet pas. Comment puis-je faire cette vérification?
int
est0
?0
place. Si vous voulez faire la vérification nulle. Utilisez le wrapper Integer pour cela.Réponses:
An
int
n'est pas nul, il peut l'être0
s'il n'est pas initialisé.Si vous voulez qu'un entier puisse être nul, vous devez utiliser à la
Integer
place deint
.De plus, l'instruction
if(person.equals(null))
ne peut pas être vraie, car siperson
est nul, alors aNullPointerException
sera lancé. L'expression correcte est doncif (person == null)
la source
les primitives n'ont pas de valeur nulle. la valeur par défaut pour un int est 0.
Valeurs par défaut pour les primitives en java:
Les objets ont null comme valeur par défaut.
Chaîne (ou tout objet) ---> null
le morceau de code ci-dessus vérifie si la personne est nulle. Tu as besoin de faire
et
Le code ci-dessus lèverait NullPointerException lorsque personne est null.
la source
Une primitive
int
ne peut pas être nulle. Si vous avez besoin de null, utilisez à laInteger
place.la source
OUI . C'est ainsi que vous vérifiez si l'objet est
null
.NON Puisque
id
est défini comme primitifint
, il sera initialisé par défaut avec0
et il ne le sera jamaisnull
. Il n'est pas nécessaire de vérifier les types primitifs, s'ils sont nuls. Ils ne seront jamais nuls. Si vous le souhaitez, vous pouvez comparer la valeur par défaut0
sous la formeif(person.getId()==0){}
.la source
Vous devez accéder à vos attributions de classe.
Pour y accéder, vous devez faire:
où
est une instance de votre classe Person.
Cela peut être fait si les attributs sont accessibles, sinon, vous devez utiliser des setters et des getters ...
la source
Vous pouvez utiliser
en plus de l'approche régulière
la source
En Java, il n'y a pas de valeurs Null pour les types de données primitifs. Si vous devez cocher Null, utilisez Integer Class au lieu du type primitif. Vous n'avez pas à vous soucier de la différence de type de données. Java convertit les données de type primitif int en Integer. En ce qui concerne la mémoire, Integer prend plus de mémoire que int. Mais la différence d'allocation de mémoire, rien à considérer.
Dans ce cas, vous devez utiliser Inter au lieu de int
Essayez l'extrait ci-dessous et voyez l'exemple pour plus d'informations,
»
»
Vous pouvez également affecter Null comme ci-dessous,
la source