相关疑难解决方法(0)

什么是未经检查的演员表,如何查看?

我想我得到了什么未经检查的演员意味着(从一个到另一个不同类型的演员),但是"检查"演员是什么意思?如何检查演员表以便我可以在Eclipse中避免此警告?

java eclipse casting unchecked

31
推荐指数
2
解决办法
3万
查看次数

Kotlin编译器的类型推断无法选择调用哪个方法(泛型类型的歧义)

因此,我有一些带有这些签名的 Java 方法(为了简单起见,删除了注释和代码体):

public class JavaClass {
  public static <E extends CharSequence> E join(E... array) { ... }
  public static <E extends CharSequence> E join(CharSequence separator, E... array) { ... }
}
Run Code Online (Sandbox Code Playgroud)

我在 Kotlin 中有一些代码,它调用“join”方法:

class KtClass {
    fun test(vararg array: String) {
        JavaClass.join(*array)
    }
}
Run Code Online (Sandbox Code Playgroud)

到目前为止,一切都很好; 它将传播可变参数并调用以前的方法签名。好的!

例如,如果我想使用“分隔符”参数调用后一个方法签名,就会出现问题:

class KtClass {
    fun test(vararg array: String) {
        JavaClass.join("<br>", *array)
    }
}
Run Code Online (Sandbox Code Playgroud)

这段代码无法编译。编译器无法决定调用哪个方法。错误:

错误:(5, 13) Kotlin:在未完成类型推断的情况下无法在以下候选者中进行选择:public open fun join(vararg array: String!): String!在 JavaClass 中定义 public open fun join(separator: CharSequence!, vararg array: …

generics overloading kotlin kotlin-interop

5
推荐指数
1
解决办法
5323
查看次数