web-dev-qa-db-fra.com

Comment vérifier si un int est nul

J'ai un objet appelé Person.

il comporte plusieurs attributs;

int id;
String name;

j'ai défini 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?

95
sharon Hwk

Un int n'est pas nul, il peut s'agir de 0 s'il n'est pas initialisé.

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; }

De plus, l'instruction if(person.equals(null)) ne peut pas être vraie, car si person est nul, un NullPointerException sera lancé. Donc, la bonne expression est if (person == null)

157
Alex

les primitives n'ont pas de valeur nulle. La valeur par défaut pour 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 la valeur par défaut NULL.

Chaîne (ou n'importe quel objet) ---> null

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

if (person == null){
}

le code ci-dessus vérifie si personne est nulle. Tu as besoin de faire

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

et

if(person.equals(null))

Le code ci-dessus lève une exception NullPointerException lorsque personne est null.

42
PermGenError

Une primitive int ne peut pas être nulle. Si vous avez besoin de null, utilisez Integer à la place.

12
Zutty

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

si (personne == null) {}

OUI. Voici comment vérifier si l'objet est null.

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

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

NO Puisque id est défini comme primitive 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 le souhaitez, vous pouvez comparer la valeur par défaut 0 en tant que if(person.getId()==0){}.

2
Yogendra Singh

Vous devez accéder à vos attributs de classe.

Pour y accéder, vous devez faire:

person.id
person.name

la personne

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 ...

0
melli-182