我想从Kotlin代码中使用这个Java类。
class JavaDialogBuilder<B extends JavaDialogBuilder>
此Java代码可以正常编译:
void javaTest() {
new JavaDialogBuilder();
}
不能将其转换为Kotlin等效代码。
fun javaTest() {
JavaDialogBuilder() // <-- compilation error here
}
编译错误为:
Type inference failed: Not enough information to infer parameter B in
constructor JavaDialogBuilder<B : (JavaDialogBuilder<JavaDialogBuilder<*>>..JavaDialogBuilder<out JavaDialogBuilder<*>>?)>
( )
Please specify it explicitly.
有没有办法解决这个问题?
答案 0 :(得分:-1)
您可以创建Kotlin特定的子类
class KotlinDialogBuilder : JavaDialogBuilder<KotlinDialogBuilder>()
这不是理想的-是否可以在不创建额外子类的情况下做到这一点?