使用Java中的Scala值类

时间:2017-01-16 09:56:56

标签: scala value-class

我在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中的值类(或任何有用的包装器/帮助器)?

0 个答案:

没有答案