[Java] null

2022. 1. 7. 17:27·TIL/Java
728x90
반응형

자바에서 실수로 발생하는 대표적인 에러 중 하나를 살펴보자.

자바에서는 '비어있음'이 null이라는 값으로 표현된다. 단, null은 참조형 변수(Reference Type)만 가질 수 있는 값이다.

 

Person p1 = null;
System.out.println(p1);
null

 

만약 null을 보관하고 있는 변수의 메소드를 호출하려고 하면 NullPointerException이라는 오류가 난다는 점을 주의하자

 

Person p1 = null;
p1.getName();

 

Exception in thread "main" java.lang.NullPointerException

 

대처법

아래 코드는 오류가 날 것이다.

people[1]과 people[4]는 null이기 때문에 p.getName()을 할 수가 없다.

 

Person[] people = new Person[5];
people[0] = new Person("김신의", 28);
people[2] = new Person("문종모", 26);
people[3] = new Person("서혜린", 21);

for (int i = 0; i < people.length; i++) {
    Person p = people[i];
    System.out.println(p.getName());
}

 

이 문제를 해결하기 위해서는 p가 null인지 먼저 확인을 해주면 된다.

 

Person[] people = new Person[5];
people[0] = new Person("김신의", 28);
people[2] = new Person("문종모", 26);
people[3] = new Person("서혜린", 21);

for (int i = 0; i < people.length; i++) {
    Person p = people[i];
    if (p != null) {
        System.out.println(p.getName());
    } else {
        System.out.println(i + "번 자리는 비었습니다.");
    }
}
김신의
1번 자리는 비었습니다.
문종모
서혜린
4번 자리는 비었습니다.
728x90
반응형

'TIL > Java' 카테고리의 다른 글

[Java] 변수를 안전하게 만드는 법: final  (0) 2022.01.07
[Java] 기본형vs참조형 / null 퀴즈  (0) 2022.01.07
[Java] 기본형 vs 참조형  (0) 2022.01.07
[Java] 중간고사: 문제 해결 능력 기르기_코드잇 소개 프로그램  (0) 2022.01.07
[Java] 콘솔 입력 받기(Scanner)  (0) 2022.01.07
'TIL/Java' 카테고리의 다른 글
  • [Java] 변수를 안전하게 만드는 법: final
  • [Java] 기본형vs참조형 / null 퀴즈
  • [Java] 기본형 vs 참조형
  • [Java] 중간고사: 문제 해결 능력 기르기_코드잇 소개 프로그램
야리니
야리니
오늘보다 내일 더 성장하는 개발자가 되기 위한 야리니 블로그입니다 :)
    반응형
    250x250
  • 야리니
    야리니의 step by step
    야리니
  • 링크

    • GitHub
    • Linkedin
  • 전체
    오늘
    어제
    • 분류 전체보기 (478) N
      • TIL (379)
        • Java (97)
        • Kotlin (28)
        • JPA (16)
        • Spring (37)
        • Oracle (22)
        • JDBC (7)
        • Web(HTML, CSS, JS, jQuery) (90)
        • View Template (31)
        • AWS (7)
        • HTTP (7)
        • CS (5)
        • Linux, Unix (2)
        • Python (20)
      • Trouble Shooting(Error) (37)
      • Algorithm (15)
      • Git,GitHub (8)
      • Diary (24) N
      • 독서 (9)
      • Etc (6)
        • Mac (1)
        • 학원준비과정 (2)
  • 블로그 메뉴

    • 방명록
    • 태그
  • 공지사항

    • 안녕하세요 :)
  • 인기 글

  • 태그

    java기초
    HTML
    쌍용교육센터
    백엔드 개발자
    국비지원학원
    Kotlin
    oracle
    코틀린
    java
    CSS
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
야리니
[Java] null
상단으로

티스토리툴바