Mam obiekt o nazwie Person
.
ma w sobie kilka atrybutów;
int id;
String name;
Ustawiam obiekt osoby, taki jak Person p = new Person(1,"Joe");
.
1.) Muszę sprawdzić, czy obiekt nie jest pusty; Czy poniższe wyrażenie jest poprawne;
if (person == null){
}
Or
if(person.equals(null))
2.) Muszę wiedzieć, czy identyfikator zawiera Int.
if(person.getId()==null){}
Ale java na to nie pozwala. Jak mogę to sprawdzić?
int
to0
?0
zamiast tego zrobić czek za pomocą . Jeśli chcesz sprawdzić zerową wartość. Użyj do tego opakowania typu Integer.Odpowiedzi:
An
int
nie jest null, może zostać0
zainicjowany.Jeśli chcesz, aby liczba całkowita była null, musisz użyć
Integer
zamiastint
.Poza tym stwierdzenie
if(person.equals(null))
nie może być prawdziwe, ponieważ jeśliperson
jest null, toNullPointerException
zostanie wyrzucony a. Więc prawidłowe wyrażenie toif (person == null)
źródło
prymitywy nie mają wartości null. Domyślnie mieć dla int to 0.
Domyślne wartości dla prymitywów w java:
Obiekty mają wartość domyślną null.
Ciąg (lub dowolny obiekt) ---> null
powyższy fragment kodu sprawdza, czy osoba jest pusta. musisz zrobić
i
Powyższy kod zgłosiłby wyjątek NullPointerException, gdy osoba ma wartość null.
źródło
Prymityw
int
nie może być pusty. Jeśli potrzebujesz wartości null, użyjInteger
zamiast tego.źródło
TAK . W ten sposób sprawdzasz, czy obiekt jest
null
.NIE Ponieważ
id
jest zdefiniowany jako prymitywnyint
, zostanie domyślnie zainicjowany0
i nigdy nie będzienull
. Nie ma potrzeby sprawdzania typów pierwotnych, jeśli są one puste. Nigdy nie będą nieważne. Jeśli chcesz, możesz porównać z wartością domyślną0
jakoif(person.getId()==0){}
.źródło
Musisz mieć dostęp do atrybutów swojej klasy.
Aby uzyskać dostęp do jego atrybutów, musisz:
gdzie
jest instancją Twojej klasy Person.
Można to zrobić, jeśli można uzyskać dostęp do atrybutów, jeśli nie, musisz użyć seterów i getterów ...
źródło
Możesz użyć
oprócz zwykłego podejścia
źródło
W Javie nie ma wartości Null dla pierwotnych typów danych. Jeśli chcesz sprawdzić wartość Null, użyj klasy całkowitej zamiast typu pierwotnego. Nie musisz się martwić różnicą typów danych. Java konwertuje dane typu pierwotnego int na Integer. Jeśli chodzi o pamięć Integer zajmuje więcej pamięci niż int. Ale różnica w alokacji pamięci, nic do rozważenia.
W takim przypadku musisz użyć Inter zamiast int
Wypróbuj poniższy fragment i zobacz przykład, aby uzyskać więcej informacji,
`
`
Możesz również przypisać Null, jak poniżej,
źródło