코틀린 공식 홈페이지를 가보면 내용을 볼 수 있다.
The !! OperatorThe third option is for NPE-lovers: the not-null assertion operator (!!) converts any value to a non-null type and throws an exception if the value is null. We can write b!!, and this will return a non-null value of b(e.g., a String in our example) or throw an NPE if b is null: ex) val l = b!!.length Thus, if you want an NPE, you can have it, but you have to ask for it explicitly, and it does not appear out of the blue. |
이 말을 보면 !! 연산자는 Null Pointer Exception 이 필요한 경우에 사용할 수 있다는 의미가 된다.
!! 연산자의 역할은 어떠한 값이든 Non-null 타입으로 변경하며, Null이 값으로 들어오면 exception을 발생시킨다고 되어 있다.
위 박스의 예제 코드처럼..
b의 length 가 null 이면 NPE가 발생하게 되는 것이다.
그래서 처음 문장에 NPE를 사랑하는 사람들에게 좋은 연산자라는 표현이 있는 것.
!! 연산자는 Null 값이 들어가서는 안되고, NPE가 필요한 경우에 사용할 수 있는 연산자라는 결론이 나온다.
'IT > Android' 카테고리의 다른 글
[Kotlin] 메서드 인터페이스 객체 생성하기(Method Interface object) (0) | 2019.09.02 |
---|---|
[Android] FragmentPagerAdapter와 FragmentStatePagerAdapter 차이 (1) | 2019.08.27 |
[Android] Kotlin + RxJava + Retrofit + OkHttp 로 http 통신하기 (0) | 2019.08.12 |
[Android] Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 2 path $ 에러 (0) | 2019.08.09 |
[Kotlin] 코틀린에서 변수 타입 ? 는 무엇을 의미 하는가 (0) | 2019.08.01 |