보통 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
'IT > java' 카테고리의 다른 글
kotlin , gradle kts kotlin dsl with java (0) | 2024.02.28 |
---|---|
DTO 등을 만들었는데 json write 시에 에러가 난다고? (0) | 2019.10.02 |
openjdk.. and remove oracle java in osx (0) | 2019.04.26 |
stacktrace... 나를 호출한 메서드들을 찍어보자. (0) | 2019.04.26 |
lambda map 만 썼을때 주의... (0) | 2017.09.27 |