133 votes

Comment vérifier si un int est un null

J'ai un objet appelé Person .

il comporte plusieurs attributs ;

int id;
String name;

je crée 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 ?

220voto

Alex Points 9063

Un site int n'est pas nulle, elle peut être 0 si elle n'est pas initialisée.

Si vous voulez qu'un entier puisse être nul, vous devez utiliser Integer au lieu de int .

Integer id;
String name;

public Integer getId() { return id; }

Outre la déclaration if(person.equals(null)) ne peut pas être vrai, car si person est nulle, alors une NullPointerException seront lancés. L'expression correcte est donc if (person == null)

53voto

PermGenError Points 26936

Les primitives n'ont pas de valeur nulle. La valeur par défaut d'un int est 0.

if(person.getId()==0){}

Valeurs par défaut pour les primitives en java :

Data Type   Default Value (for fields)

byte                0
short               0
int                 0
long            0L
float           0.0f
double          0.0d
char            '\u0000'
boolean         false

Les objets ont null comme valeur par défaut.

Chaîne (ou tout autre objet) --->null

1.) Je dois vérifier si l'objet n'est pas nul. L'expression suivante est-elle correcte ?

if (person == null){
}

le morceau de code ci-dessus vérifie si la personne est nulle. vous devez faire

if (person != null){ // checks if person is not null
}

et

if(person.equals(null))

Le code ci-dessus lèverait une exception NullPointerException si la personne est nulle.

17voto

Zutty Points 2733

Un primitif int ne peut être nulle. Si vous avez besoin de null, utilisez Integer à la place.

3voto

Yogendra Singh Points 19406

1.) Je dois vérifier si l'objet n'est pas nul. L'expression suivante est-elle correcte ?

si (personne == null){ }

OUI . C'est ainsi que vous vérifiez si l'objet est null .

2.) J'ai besoin de savoir si l'ID contient un Int.

si(person.getId()==null){}

NON Depuis id est défini comme primitif int il sera initialisé par défaut avec 0 et ce ne sera jamais null . Il n'est pas nécessaire de vérifier les types primitifs, s'ils sont nuls. Ils ne seront jamais nuls. Si vous voulez, vous pouvez comparer avec la valeur par défaut 0 como if(person.getId()==0){} .

0voto

melli-182 Points 1047

Vous devez accéder aux attributs de votre classe.

Pour accéder à ses attributs, vous devez le faire :

person.id
person.name

donde

personne

est une instance de votre classe Personne.

Cela peut être fait si les attibutes sont accessibles, sinon, vous devez utiliser des setters et getters...

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X