【发布时间】:2015-02-12 14:56:53
【问题描述】:
我在 Kotlin 中有一个方法,它返回一个通用列表的 Rx Observable:
public fun getObservable(): Observable<List<FooBar>> {
return Observable.just(theList)
}
因为 Kotlin 列表 trait 被定义为 List<out T>,Java 会将返回类型视为 Observable<List<? extends FooBar>>。
有没有办法告诉 Kotlin 编译器 Java 应该将其视为 Observable<List<FooBar>>?
http://kotlinlang.org/docs/reference/generics.html
更新以正确显示问题。
【问题讨论】:
-
解决此问题的一种方法是使用
MutableList,但是如果getList()请求不可变的返回类型,这将无济于事。 -
你不能简单地用 Java 进行转换吗?
-
是的,这是可能的,但是我不希望在这种情况的每个实例中都使用演员表。此外,问题更多的是对 Kotlin 对这种情况的语言可供性的好奇。
-
我刚刚测试过,我可以在Java中使用kotlin方法
fun getList(): List<String>和List<String> list = TestPackage.getList();所以我看不到你描述的问题。 -
你是对的@SalomonBRYS。我更新了问题。
标签: java generics interop kotlin