본문 바로가기
with my rubber duck/errors

NullPointerException , nice to meet you^^

by stilinski 2022. 4. 5.
728x90

위쪽 findAccount에서 계좌번호를 조회하고 정보가 없으면 null을 리턴하게 하려 했다.
그 결과를 입금 매소드에 받아서 findAccount결과에 따라 결과를 다르게 하려고 했는데...




자꾸 findAccount메서드에서 NullPointerException에러가 뜨는 것이다 ㅡㅡ
null이면 그냥 null을 리턴하라고..!ㅠㅠ




근데 자세히 보니

특정 메소드를 실행할 수 없다고 쓰여있었다.


아니 여기가 첫타자부터 null일수가 없는데.ㅡㅡ?
여기서 왜 null이라는지는 모르겠지만 ㅡㅡ 일단 여기를 수정 봐야 한다는 것을 알았다.

...








use your brain

몇십 분 생각하니 왜 그런지 알게 됨.
저 배열은 크기가 100인데 모든 자리에 값이 있지 않은 배열임.
저기서 저 if조건인 배열 안의 계좌번호와 입력받은 계좌번호가 같아야만 if문 안으로 들어가서 break를 만나 반복문이 끝나게 되는 거지, 만약 입력받은 계좌번호가 배열에 존재하지 않는다면 끝나지 않고 돌아감. 그래서 결국엔 값이 없는 배열이 data변수에 대입되어서 equals를 실행할 수 없게 되는 거임!

그래서 만약 if조건에 맞는 입력값을 받았을 때는 저 코드는 문제없이 잘 돌아감.
if문 안으로 들어가서 break를 만나서 빠져나오게 되니까!
반복문이 또 돌아가서 값이 없는 배열이 data에 대입되기 전에 빠져나 가기 때문에 문제가 없던 것.



유레카




이렇게 보니 간단하잖아..?





아무튼 저기서 에러가 걸려 밑에 있는 값을 리턴하는 곳까지 가지도 못했던 것이다.
그렇다면 배열에 값이 있는 부분만 저 조건에 들어오게 해야 함

그리하여 이렇게 수정하였다.
그리고 배열의 크기가 커서... 끝까지 돌지 않도록 값이 없는 부분을 만났을 때 반복문에서 빠져나오게 했다.
그랬더니 아주 잘 됨. 후....................



솔직히 혼자서는 절대 못했을 거 같다.
ㅋㅋㅋㅋㅋㅋ
답을 좀 참고했다.
답 참고해도 왜 이렇게 돼야 하는지 몰라서 한참 생각했네
그래... input있어야 output있지
자바 배운 지 이제 2주째임..ㅋ 너무 조바심 내지 말자

왜 그렇게 되는지 고민하는 시간이 조금 아깝지만...(공부할게 너무 많음ㅜㅜ) 나중에 다 도움될 거라고 생각한다.
잘하고 있는 걸 거야 ~ㅋ

화이팅~

728x90

댓글