В моем Java-коде я использую метод, давайте вызовем foo(), который возвращает scala.Double[].

scala.Double[] arr = foo();

Я хочу суммировать arr в scala.Double, но у меня проблемы. Я обнаружил, что выполнение любой математической операции над scala.Double приводит к сообщению об ошибке из моей IDE:

arr[0] + arr[1];
arr[0] * arr[1];
//etc

Получай мне такие сообщения

Operator '+' cannot be applied to 'scala.Double', 'scala.Double'

Как я могу выполнять математические операции с scala.Double в коде Java? (в качестве альтернативы, есть ли другой способ суммировать scala.Double[] в коде Java?)

1
Mike S 13 Апр 2020 в 21:39

1 ответ

Непонятно, как вы получили scala.Double[] в Java. Если у вас есть Array[Double] в Scala, в Java он отображается как double[], а не scala.Double[].

В любом случае, если у вас есть scala.Double[] в Java

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]...

0
Dmytro Mitin 14 Апр 2020 в 00:42