我正在进行一个Java/Scala混合项目,并且我正在尝试从Java调用Scala对象的方法。此方法以Option[Double]作为参数。我以为这能行得通:
Option[Double]
Double doubleValue = new Double(1.0); scalaObj.scalaMethod(new Some(doubleValue));
但是Eclipse告诉我“构造函数Some(Double)是未定义的”。
我应该以不同的方式调用scala.Some的构造函数吗?
scala.Some
4zcjmb1e1#
在Scala中,您通常可以按如下方式提升到选项:
scala> val doubleValue = Option(1.0) doubleValue: Option[Double] = Some(1.0)
()是Option的伴随对象的apply[A](A obj)方法的语法糖。因此,可以在Java中直接调用:
()
Option
apply[A](A obj)
Option<Double> doubleValue = Option.apply(1.0);
u59ebvdq2#
你可以这样构造一个示例,这是为我编译的,
Some<Double> d = new Some<Double>(Double.valueOf(1));
问题可能是缺少泛型,试着这样做,
scalaObj.scalaMethod(new Some<Double>(doubleValue));
2条答案
按热度按时间4zcjmb1e1#
在Scala中,您通常可以按如下方式提升到选项:
()
是Option
的伴随对象的apply[A](A obj)
方法的语法糖。因此,可以在Java中直接调用:u59ebvdq2#
你可以这样构造一个示例,这是为我编译的,
问题可能是缺少泛型,试着这样做,