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 }