[java] 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입니다.

문자열 (또는 임의의 개체) —> null

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

if (person == null){
}

위의 코드는 person이 null인지 확인합니다. 당신은해야합니다

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

if(person.equals(null))

위 코드는 person이 null 일 때 NullPointerException을 발생시킵니다.


답변

기본 요소 int는 널일 수 없습니다. null이 필요한 경우 Integer대신 사용하십시오.


답변

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

if (사람 == null) {}

. 이것이 object인지 확인하는 방법입니다 null.

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

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

NO 때문에 id원시적으로 정의된다 int, 그것은 기본으로 초기화 될 것입니다 0그리고 그것은 결코 것입니다 null. 기본 유형이 널인 경우 확인할 필요가 없습니다. 그들은 null이 될 수 없습니다. 당신이 원하는 경우 기본 값과 비교할 수 있습니다 0if(person.getId()==0){}.


답변

수업 속성에 액세스해야합니다.

속성에 액세스하려면 다음을 수행해야합니다.

person.id
person.name

어디

사람

Person 클래스의 인스턴스입니다.

속성에 액세스 할 수 있으면이 작업을 수행 할 수 있고 그렇지 않은 경우 setter와 getter를 사용해야합니다.


답변

당신이 사용할 수있는

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

정기적 인 접근 외에

person.getId() == 0


답변

Java에는 기본 데이터 유형에 대한 Null 값이 없습니다. Null을 확인해야하는 경우 기본 유형 대신 Integer Class를 사용하십시오. 데이터 유형 차이에 대해 걱정할 필요가 없습니다. Java는 int 기본 유형 데이터를 Integer로 변환합니다. 메모리에 대해 고려할 때 Integer는 int보다 더 많은 메모리를 사용합니다. 그러나 메모리 할당의 차이는 고려할 사항이 없습니다.

이 경우에는 int 대신 Inter를 사용해야합니다.

아래 스 니펫을 시도하고 자세한 정보는 예제를 참조하십시오.

Integer id;
String name;

//Refer this example
    Integer val = 0;

`

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

`

또한 아래와 같이 Null을 할당 할 수 있습니다.

val = null;