FireDrago

null 배열값 참조 본문

오류노트

null 배열값 참조

화이용 2023. 5. 2. 15:05

Exception in thread "main" java.lang.NullPointerException: Cannot read field "price" because "this.item[i]" is null

at test/productMng.Buyer.cart(Buyer.java:40)

at test/productMng.Main.main(Main.java:12)

item[i] 배열이 null 값이라서 읽어올 수 없다는 오류가 발생했다. 

for (int i=0; i <item.length; i++) 
    sum += item[i].price;
    itemList += (i==0)?item[i]:","+item[i];

item 배열의 크기는 10이고, 2개의 값이 들어가 있다. 그런데 

for문에서는 item 배열의 전체 크기만큼 반복하므로 item[2] 부터 null값이 참조되어 에러가 발생한다 

해결하기 위해서는 배열의 값이 null값일때 반복문을 탈출 하도록 break; 를 활용해 주면 된다.

 

for (int i=0; i <item.length; i++) 
    if (item[i]==null) break; // null일때 반복문 탈출

    sum += item[i].price;
    itemList += (i==0)?item[i]:","+item[i];