Programing

int가 null인지 확인하는 방법

crosscheck 2020. 8. 25. 07:32
반응형

int가 null인지 확인하는 방법


라는 개체가 Person있습니다.

여기에는 몇 가지 속성이 있습니다.

int id;
String name;

나는 같은 사람 객체를 설정합니다 Person p = new Person(1,"Joe");.

1.) 개체가 null이 아닌지 확인해야합니다. 다음식이 맞습니까?

if (person == null){
}

Or


if(person.equals(null))

2.) ID에 Int가 포함되어 있는지 알고 싶습니다.

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

그러나 자바는 그것을 허용하지 않습니다. 이 확인은 어떻게 할 수 있습니까?


An int은 null 0이 아니며 초기화되지 않은 경우 일 수 있습니다 .

정수가 null이 될 수 있도록하려면 Integer대신 을 사용해야 합니다 int.

Integer id;
String name;

public Integer getId() { return id; }

문 외에는 if(person.equals(null))true 일 수 없습니다. if person가 null이면 a NullPointerException가 발생하기 때문입니다. 그래서 올바른 표현은if (person == null)


프리미티브에는 널값이 없습니다. int의 기본값은 0입니다.

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

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

개체의 기본값은 null입니다.

String (or any object)--->null

1.) I need to check if the object is not null; Is the following expression correct;

if (person == null){
}

the above piece of code checks if person is null. you need to do

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

and

if(person.equals(null))

The above code would throw NullPointerException when person is null.


A primitive int cannot be null. If you need null, use Integer instead.


1.) I need to check if the object is not null; Is the following expression correct;

if (person == null){ }

YES. This is how you check if object is null.

2.) I need to know if the ID contains an Int.

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

NO Since id is defined as primitive int, it will be default initialized with 0 and it will never be null. There is no need to check primitive types, if they are null. They will never be null. If you want, you can compare against the default value 0 as if(person.getId()==0){}.


You have to access to your class atributes.

To access to it atributes, you have to do:

person.id
person.name

where

person

is an instance of your class Person.

This can be done if the attibutes can be accessed, if not, you must use setters and getters...


In Java there isn't Null values for primitive Data types. If you need to check Null use Integer Class instead of primitive type. You don't need to worry about data type difference. Java converts int primitive type data to Integer. When concerning about the memory Integer takes more memory than int. But the difference of memory allocation, nothing to be considered.

In this case you must use Inter instead of int

Try below snippet and see example for more info,

Integer id;
String name;

//Refer this example
    Integer val = 0;

`

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

`

Also you can assign Null as below,

val = null;

You can use

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

in addition to regular approach

person.getId() == 0

참고URL : https://stackoverflow.com/questions/13747859/how-to-check-if-an-int-is-a-null

반응형