모든 객체가 엄밀하게 따지자면 null을 가지고 있을 가능성이 있잖아?
근데 nullpointerexception 뜨는 걸 100% 차단하기 위해 객체를 쓰는 모든 곳에서 null check 한다는 얘기를 하는 사람을 봤는데,
자기 관할에 있는 코드를 사용하는거면 지나친 처사가 아닌가 생각이 듦. 서드파티라 해도 해도 저명한 서드파티면 문서를 읽고 null이 리턴되지 않는다는 설명이 있다면 안해도 충분하지 않을까 하는 생각도 있고
이런 것에 대해 좀 찾아보고 싶은데 어떻게 검색하며 좋을까
https://youtu.be/6ts1Uxp_i3w?si=lmxWlWIIRqtgSZX6&t=1
외부에서 사용 가능한 인터페이스가 열려있는거면 무조건 null 체크 해야됨, 내부에서 쓰는거고 @NonNull 어노테이션이 달려 있으면서 절대 null이 안들어온다는 가정이 있으면 null 체크 안해도 됨. 그리고 모든 곳에 @NonNull 달기 힘드니, NonNull을 default로 만들도록 package-info.java에 @NonNullByDefault 어노테이션을 달아서 씀
ㅇㅎ ㄱㅅㄱㅅ
더 궁금하면
https://www.youtube.com/watch?v=oJpVeKKrgKI
이거보삼. 근데 결론은 자바에서 정적 분석이든 뭐든 해도 100% null 차단될 수가 없음
외부라는게 어떤 기준임? public modifier 달려있으면? 아니면 코드베이스 차원에서의 외부?
public
Null 가능성 있는 분기 커버 안하면 정적분석 툴이 잡아내서 시스템 운영팀에서 존나 꼽줌