보통 must not be null 뭐.. 그런게 보일겁니다.

 

예로 kotlin 에서 Map 을 만들었고, 해당 Map 의 값에  java's method 를 호출한 결과를 담는 상황이라면?

그런데 그 method 에서 null 을 리턴한다면? 에러가 날겁니다. 

 

Map 의 선언시 그럼 nullable 을 알리면 되지 않느냐? 예. 맞아요. 근데 ... 이부분에서 처음에 삽질했는데

 

var map: MutableMap<String, Any> = mutableMapOf()
map["name"] = javaMethod.getValue()

 

이런 코드가 있을경우 map 에 "name" 을 key 로 하고 자바의 method 결과를 값으로 담는 경우.. 어디에 '?' 를 붙여야 할까요? MutableMap 에 ? 를 붙이면 되는건가 싶지만 그건 mutableMapOf 에 대한 리턴을 의미하게 됩니다.

이런경우는

var map: MutableMap<String, Any?> = mutableMapOf()

.. 즉 담기는 값인 Any에 '?' 를 붙이면 됩니다. type 뒤에 ? 를 붙이는걸 기억하시죠? 

 

사실 이건 실수 레벨이긴한데, 잘못하면 꽤나 시간잡아먹는 내용입니다. orz 

 

 

+ Recent posts