如果我有这样的java类:
public interface MyInterface<E extends Apple, EE extends Banana> {
Class<E> foo();
@Nullable
EE bar(E e);
}
如果您有一些Apple和Banana的实现,那么您只需要将它们指定为泛型。
例如,如果我在Java 中实现了Apple和Banana
public class AppleJavaImpl extends Apple {}
public class BananaJavaImpl extends Banana {}
然后你可以在Kotlin 中实现你的Java MyInterface
class MyJavaInterfaceImplementationInKotlin: MyInterface<AppleJavaImpl, BananaJavaImpl> {
override fun foo(): Class<AppleJavaImpl> {
TODO("Not yet implemented")
}
override fun bar(e: AppleJavaImpl?): BananaJavaImpl? {
TODO("Not yet implemented")
}
}
这同样适用于苹果和香蕉的kotlin实现
class AppleKotlinImpl: Apple()
class BananaKotlinImpl: Banana()
class MyJavaInterfaceImplementationInKotlin: MyInterface<AppleKotlinImpl, BananaKotlinImpl> {
override fun foo(): Class<AppleKotlinImpl> {
TODO("Not yet implemented")
}
override fun bar(e: AppleKotlinImpl?): BananaKotlinImpl? {
TODO("Not yet implemented")
}
}