Как вызвать метод Java, который принимает целое число или ноль, с помощью параметра Scala [Int]?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как вызвать метод Java, который принимает целое число или ноль, с помощью параметра Scala [Int]?

Сообщение Anonymous »

Java-кодер пытается использовать Scala...
У меня есть сгенерированный Java-конструктор, в котором есть метод

Код: Выделить всё

    public com.yada.SomeEntity.Builder setSomeValue(java.lang.Integer value) {
...
}
Из Scala я могу вызвать это с целочисленным значением или с нулевым значением (и поле намеренно определено как допускающее значение NULL).
В моем коде Scala у меня есть, скажем,

Код: Выделить всё

    val someInput: Option[Int] = someMethod()
Проблема в том, что ничего из этого не работает
  • Код: Выделить всё

    builder.setSomeValue(someInput)
    — очевидно, потому что это Option[Int], а не Integer.
  • Код: Выделить всё

    builder.setSomeValue(someInput.orNull)
     – поскольку someInput.orNull имеет значение Any, а не целое число
  • Код: Выделить всё

    builder.setSomeValue(someInput.orElseGet(null)
    – это тоже Any
Я могу это сделать

Код: Выделить всё

   builder.setSomeValue(if (someInput.isDefined) someInput.get else null)
Или, альтернативно, я могу сопоставить что-то с someInput, но это нарушает плавный стиль компоновщика и выглядит просто некрасиво.
Есть ли хороший способ справиться с этим в Scala?

Подробнее здесь: https://stackoverflow.com/questions/793 ... a-optionin
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»