0

我在 Scala 中使用值类来避免在运行时装箱。

例如。:

trait Service {
  def getThing(thingId: ThingId): Thing
}

final case class ThingId(value: Long) extends AnyVal

但是,我使用的是 Java 代码中的相同值类:

interface JavaService {
    Thing getThing(ThingId thingId);
}

这不起作用,因为ThingId实际上编译为 Long:

JavaService.java:[2,19] error: 
  incompatible types: ThingId cannot be converted to long

是否有使用 Java 中的值类(或任何有用的包装器/帮助器)的模式?

4

0 回答 0