Kotlin 2.5 베타, companion 블록·확장 실험 기능 지원
JetBrains가 9월 30일 Kotlin 2.5.0-Beta1부터 지원하는 실험적 companion 블록·확장을 소개했다. JVM에서는 블록을 정적 멤버로 컴파일하고, 확장은 직접 관리하지 않는 Java 클래스에도 선언할 수 있다. 확장을 쓴 라이브러리는 사전 출시 바이너리가 돼 안정화 전까지 의존성 사용이 제한되며, 기존 companion object 지원은 유지된다.
컴파일러 옵션 -Xcompanion-blocks는 블록을, -Xcompanion-blocks-and-extensions는 블록과 확장을 함께 활성화한다.
companion 확장은 기존 companion object의 유무와 관계없이 Kotlin·Java 클래스 및 인터페이스에 선언할 수 있다.
Kotlin Multiplatform에서는 expected companion 블록 멤버를 Java 클래스의 정적 멤버로 actualize할 수 있다.
블록만 공개하는 경우 사전 출시 바이너리 제한은 적용되지 않지만, 사용하는 쪽도 블록 기능을 활성화해야 한다.
생태계의 일부 도구는 아직 companion 블록을 지원하지 않을 수 있다.
인터페이스 구현이 필요한 companion은 기존 object를 써야 한다. 블록으로 옮길 때는 해당 프로젝트와 이를 사용하는 코드도 다시 컴파일해야 한다.
원문
- The Companions to ComeJetBrains · 원문 2026-09-30