У меня есть API с сигнатурой на Java, которая возвращает public Foo<?> getFoo()
Затем, когда я пытаюсь уничтожить этот API от Scala, жалуется ?
,
val fooValue:Foo[_] = API.getFoo()
Я также пытаюсь с помощью Any
val fooValue:Foo[Any] = API.getFoo()
Любая идея, как я могу задать тип вопроса в Scala
Следующий код компилируется
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.
Foo
. Что вы подразумеваете под "не может иметь общего типа T"?