簡體   English   中英

如何從Java調用scala的Option構造函數

[英]How to call scala's Option constructors from Java

我正在研究一個混合的java / scala項目,我試圖從Java調用scala對象的方法。 此方法將Option[Double]作為參數。 我認為這會奏效:

Double doubleValue = new Double(1.0);
scalaObj.scalaMethod(new Some(doubleValue));

但Eclipse告訴我“構造函數Some(Double)未定義”。

我應該調用scala.Some的構造函數。 scala.Some不同?

在Scala中,您通常會按如下方式升級到Option:

scala> val doubleValue = Option(1.0)
doubleValue: Option[Double] = Some(1.0)

()Option的伴隨對象的apply[A](A obj)方法的語法糖。 因此,它可以直接在Java中調用:

Option<Double> doubleValue = Option.apply(1.0);

你可以用這種方式構造一個實例,這為我編譯,

Some<Double> d = new Some<Double>(Double.valueOf(1));

問題可能是缺少的泛型,嘗試做,

scalaObj.scalaMethod(new Some<Double>(doubleValue));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM