-
최신 JDK 21과 Kotlin 1.9.22 조합에서 발견된 오류 및 주의 사항JAVA 2024. 7. 12. 17:30728x90
최신 JDK 21과 Kotlin 1.9.22 조합을 사용하면서 몇 가지 오류와 주의 사항을 발견했습니다.
- 불변 컬렉션에서 addFirst와 addLast 사용 가능
놀랍게도, 불변 컬렉션인 List에 addFirst와 addLast 메서드를 사용할 수 있습니다. 예를 들어, 다음 코드는 오류 없이 실행됩니다.
fun foo(x: List<String>) { x.add("") // 예상대로 오류 x.addFirst("") // 허용됨 }
이는 기존 Kotlin 버전과 다른 동작이며, 명확한 문서화가 이루어지지 않아 혼란을 야기할 수 있습니다.
- null 허용 처리
null 값을 처리할 때 주의가 필요합니다. null 허용되지 않은 상황에서 addFirst와 addLast 메서드는 null 값을 허용합니다.
val mySet = kotlin.collections.LinkedHashSet<String>() mySet.addFirst(null) // 허용됨 mySet.addLast(null) // 허용됨 //mySet.add(null) // null can not be a value of a non-null type String val myMap = kotlin.collections.LinkedHashMap<Int, String>() myMap.putFirst(0, null) myMap.putLast(1, null) //myMap[2] = null // null can not be a value of a non-null type TypeVariable(V)
이는 jdk 21에서 신규 메소드를 kotlin 처리 과정에서 생긴 문제로 보이며, Kotlin 2.0.0 이상에서 해결될 것으로 예상됩니다.
- Kotlin 2.0.0 이상에서 확인 필요
현재 발견된 오류들은 Kotlin 1.9.22, 1.9.23 등 버전에서만 발생하는 것으로 확인되었습니다. Kotlin 2.0.0-RC 이상 버전에서는 해결될 가능성이 높으므로, 업그레이드 후 다시 확인하는 것이 좋습니다.
- 결론
JDK 21과 Kotlin 조합을 사용할 때는 위의 오류와 주의 사항을 인지하고, Kotlin 2.0.0 이상 버전으로 업그레이드를 고려하는 것이 좋습니다. 또한, Kotlin 공식 문서 및 버그 추적 시스템을 통해 최신 정보를 확인하는 것이 중요합니다.
참고자료
728x90'JAVA' 카테고리의 다른 글
kotlin operator invoke 로 데이터 검증 하기! (0) 2024.07.30 spring boot jar 파일 실행시 application.yml 주입 하기 (0) 2024.07.05 R에서 rJava 사용하기 위한 설치 진행 (0) 2019.11.14 Failed to execute goal org.apache.maven.plugins:maven-jar-plugin:2.6:jar (0) 2019.11.11 Maven을 이용한 Springboot 프로젝트 repackage 하기 (0) 2019.07.15