在Java代码中对Scala对象执行数学运算
在我的java代码中,我使用了一个方法,让我们调用在Java代码中对Scala对象执行数学运算,java,scala,scala-java-interop,Java,Scala,Scala Java Interop,在我的java代码中,我使用了一个方法,让我们调用foo(),它返回一个scala.Double[] scala.Double[]arr=foo(); 我想把arr总结成scala.Double,但我遇到了麻烦。我发现在scala.Doubles上执行任何类型的数学运算都会从IDE中得到一条错误消息: arr[0]+arr[1]; arr[0]*arr[1]; //等 给我留言,比如 运算符“+”不能应用于“scala.Double”、“scala.Double” 如何在java代码中对sc
foo()
,它返回一个scala.Double[]
scala.Double[]arr=foo();
我想把arr
总结成scala.Double
,但我遇到了麻烦。我发现在scala.Double
s上执行任何类型的数学运算都会从IDE中得到一条错误消息:
arr[0]+arr[1];
arr[0]*arr[1];
//等
给我留言,比如
运算符“+”不能应用于“scala.Double”、“scala.Double”
如何在java代码中对scala.Double进行数学运算?(或者,是否有另一种方法来总结java代码中的
scala.Double[]
)不清楚java中的scala.Double[]
。如果Scala中有Array[Double]
,则在Java中它被视为Double[]
,而不是Scala.Double[]
无论如何,如果您有Java中的scala.Double[]
public class App {
public static scala.Double[] arr = foo();
}
然后它在Scala中也被看作是Array[Scala.Double]
object App1 {
val arr1: Array[Double] = App.arr
}
而后者在Java中被视为double[]
public class App {
public static scala.Double[] arr = foo();
public static double[] arr2 = App1.arr1();
}
然后您可以执行
arr2[0]+arr2[1]
,arr2[0]*arr2[1]
。不清楚您是如何在Java中获得scala.Double[]
。如果Scala中有Array[Double]
,则在Java中它被视为Double[]
,而不是Scala.Double[]
无论如何,如果您有Java中的scala.Double[]
public class App {
public static scala.Double[] arr = foo();
}
然后它在Scala中也被看作是Array[Scala.Double]
object App1 {
val arr1: Array[Double] = App.arr
}
而后者在Java中被视为double[]
public class App {
public static scala.Double[] arr = foo();
public static double[] arr2 = App1.arr1();
}
然后您可以执行arr2[0]+arr2[1]
,arr2[0]*arr2[1]