如何从Java调用Scala的Option构造函数 [英] How to call scala's Option constructors from Java
本文介绍了如何从Java调用Scala的Option构造函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
Option [Double]
作为参数。我以为这会工作: Double doubleValue = new Double(1.0);
scalaObj.scalaMethod(new Some(doubleValue));
但是Eclipse告诉我构造函数Some(Double)未定义。
我应该调用 scala.Some
的构造函数吗?
解决方案
在Scala中,您通常按如下方式提起选项:
阶> val doubleValue = Option(1.0)
doubleValue:Option [Double] = Some(1.0)
()
是一个的句法糖,适用于
的配对对象。因此,它可以直接在Java中调用:应用[A](A obj)
选项
选项< Double> doubleValue = Option.apply(1.0);
I am working on a mixed java/scala project, and I am trying to call a scala object's method from Java. This method takes an Option[Double]
as a parameter. I thought this would work:
Double doubleValue = new Double(1.0);
scalaObj.scalaMethod(new Some(doubleValue));
But Eclipse tells me "The constructor Some(Double) is undefined".
Should I be calling the constructor for scala.Some
differently?
解决方案
In Scala you normally lift to Option as follows:
scala> val doubleValue = Option(1.0)
doubleValue: Option[Double] = Some(1.0)
()
is a syntactic sugar for apply[A](A obj)
method of Option
's companion object. Therefore, it can be directly called in Java:
Option<Double> doubleValue = Option.apply(1.0);
这篇关于如何从Java调用Scala的Option构造函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文