Выполнение математических операций над Scala объектами в Java коде - PullRequest
1 голос
/ 13 апреля 2020

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

scala.Double[] arr = foo();

Я хочу суммировать arr в scala.Double , но у меня проблемы. Я обнаружил, что выполнение математических операций любого типа на scala.Double s приводит к выводу сообщения об ошибке из моей среды 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 Ответ

0 голосов
/ 14 апреля 2020

Непонятно, откуда у вас 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] ...

...