Hoe te controleren of een int een null is

Ik heb een object met de naam person.

het heeft verschillende attributen;

int id;
String name;

ik stel een persoonsobject in zoals Person p = new Person(1,"Joe");.

1.) Ik moet controleren of het object niet null is; Is de volgende uitdrukking correct;

if (person == null){
}
Or
if(person.equals(null))

2.) Ik moet weten of de ID een Int. bevat.

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

Maar java staat het niet toe. Hoe kan ik deze controle uitvoeren?


Antwoord 1, autoriteit 100%

Een intis niet null, het kan 0zijn als het niet is geïnitialiseerd.

Als je wilt dat een geheel getal null kan zijn, moet je Integergebruiken in plaats van int.

Integer id;
String name;
public Integer getId() { return id; }

Behalve de verklaring if(person.equals(null))kan niet waar zijn, want als personnull is, dan is een NullPointerExceptionzal worden gegooid. Dus de juiste uitdrukking is if (person == null)


Antwoord 2, autoriteit 25%

primitieven hebben geen null-waarde. standaard hebben voor een int is 0.

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

Standaardwaarden voor primitieven in 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

Objecten hebben null als standaardwaarde.

String (of een object) — & GT; NULL

1.) Ik moet controleren of het object niet null is; Is de volgende uitdrukking correct;

if (person == null){
}

Het bovenstaande stuk van de codecontroles als persoon null is. U moet

doen

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

en

if(person.equals(null))

De bovenstaande code zou nullpointerexceptie gooien wanneer de persoon null is.


Antwoord 3, Autoriteit 8%

Een primitieve intkan niet nul zijn. Als u NULL nodig heeft, gebruikt u Integerin plaats daarvan.


Antwoord 4

1.) Ik moet controleren of het object niet null is; Is de volgende uitdrukking correct;

if (persoon == null) {
}

ja . Dit is hoe u controleert of object nullis.

2.) Ik moet weten of de ID een int.

bevat

if (persoon.getid () == null) {}

Nee Sinds idwordt gedefinieerd als primitief int, het is standaard geïnitialiseerd met 0en het zal nooit null. Het is niet nodig om primitieve typen te controleren, als ze nul zijn. Ze zullen nooit nul zijn. Als u wilt, kunt u zich vergelijken met de standaardwaarde 0als if(person.getId()==0){}.


Antwoord 5

je hebt toegang tot je klasse-atributes.

Om er toegang toe te hebben, moet u doen:

person.id
person.name

waar

persoon

is een instantie van uw klas Persoon.

Dit kan worden gedaan als de attributen toegankelijk zijn, zo niet, dan moet u setters en getters gebruiken…


Antwoord 6

In Java zijn er geen Null-waarden voor primitieve gegevenstypen.
Als u Null moet controleren, gebruikt u Integer Class in plaats van het primitieve type. U hoeft zich geen zorgen te maken over het verschil in gegevenstype. Java converteert int primitieve typegegevens naar Integer.
Als je je zorgen maakt over het geheugen, neemt Integer meer geheugen in beslag dan int. Maar het verschil in geheugentoewijzing, niets om in overweging te nemen.

In dit geval moet u Inter gebruiken in plaats van int

Probeer het onderstaande fragment en bekijk het voorbeeld voor meer informatie,

Integer id;
String name;
//Refer this example
    Integer val = 0;

`

if (val != null){
System.out.println("value is not null");
}

`

U kunt ook Null toewijzen zoals hieronder,

val = null;

Antwoord 7

U kunt

. gebruiken

if (person == null || String.valueOf(person.getId() == null)) 

naast de reguliere aanpak

person.getId() == 0

Other episodes