Вопросительный знак Java Generics в Scala - PullRequest
0 голосов
/ 10 октября 2018

У меня есть API с подписью в Java, который возвращает public Foo<?> getFoo()

Затем, когда я пытаюсь использовать этот API из Scala, жалуется на ?.

val fooValue:Foo[_] = API.getFoo()

Я также пытаюсь с Any

val fooValue:Foo[Any] = API.getFoo()

Любая идея, как я могу установить тип знака вопроса в Scala

1 Ответ

0 голосов
/ 10 октября 2018

Следующий код компилируется

Foo.java

public class Foo<T> {
}

API.java

public class API {
    public static Foo<?> getFoo() {
        return null;
    }
}

App.scala

object App {
  val fooValue: Foo[_] = API.getFoo()
}

Foo[?] не является допустимым синтаксисом Java.

Если метод public static Foo<?> getFoo(), вы можете вызвать его какAPI.getFoo().Если это public Foo<?> getFoo(), вы можете назвать его как new API().getFoo().

Вопросительный знак (?) в Java соответствует подчеркиванию (_) в Scala.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...