如何从Java调用Scala的Option构造函数 [英] How to call scala's Option constructors from Java

查看:285
本文介绍了如何从Java调用Scala的Option构造函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在处理一个混合的java / scala项目,我正在尝试从Java调用Scala对象的方法。此方法采用 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)

()是一个的句法糖,适用于应用[A](A obj)选项的配对对象。因此,它可以直接在Java中调用:

 选项< 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆