Scala 3でAtomicIntegerFieldUpdater使うsample

Scala 2は無理だが3では @static が実装されてるので、Scala 3なら動く。それはそう

scalaVersion := "3.3.1"
package example

import java.util.concurrent.atomic.AtomicIntegerFieldUpdater
import scala.annotation.static

object AtomicFieldUpdaterExample {
  @static val updater: AtomicIntegerFieldUpdater[AtomicFieldUpdaterExample] =
    AtomicIntegerFieldUpdater.newUpdater(classOf[AtomicFieldUpdaterExample], "aaa")

  def main(args: Array[String]): Unit = {
    val x = new AtomicFieldUpdaterExample()
    println(x.aaa)
    val i = updater.getAndIncrement(x)
    println(i)
    println(x.aaa)
  }
}

class AtomicFieldUpdaterExample {
  @volatile var aaa: Int = 0
}