적절하게 null을 처리하라
null을 안전하게 처리하기
안전호출 printer?.print()
스마트 캐스팅 if(printer != null) printer.print()
엘비스 연산자
Not-null assertion(!!)과 관련된 문제
!!문은 nullability가 제대로 표현되지 않는 라이브러리를 사용할 때 정도에만 사용해야함
미래에 코드가 어떻게 변화할지 모르니 현재 null이 아니라고 !!문을 쓰면 안된다.
!! 연산자 사용은 최대한 피하자
의심 없는 nullability 피하기
nullability를 안전하게 처리할 수 있는 함수 사용 -> List getOrNull
어떤 값이 클래스 생성 이후 확실하게 설정된다는 보장이 있으면 lateinit 프로퍼티와 notqnull 델리게이트를 사용
빈 컬렉션 대신 null을 리턴하지 마세요
nullable enum vs none enum
lateinit 프로퍼티와 notNull 델리게이트
lateinit 한정자는 프로퍼티가 이후에 설정될 것임을 명시하는 한정자 lateinit 선언이 되어있는데 초기화 안하고 사용시 예외발생
장점
단점
notNull을 위임하면 get에서 널 검사를 진행한다.
Last updated