💬

[Kotlin] by lazy の仕組み

2022/03/22に公開

Kotlin by lazy の仕組み

つまり

  • JVM 上は SynchronizedLazyImpl で表現される(今回の実験では)。github link
  • 上記クラスは、よくある memoizatin の実装になっている。

実験コード

fun main(){
  val l = lazy {
    "hello"
  }
  println(l::class)

  val lazyObj by l
  println(lazyObj)
}
$ kotlinc ./Main.kt -include-runtime -d ./Kotlin.jar; java -jar Kotlin.jar
class kotlin.SynchronizedLazyImpl
hello

Discussion