Kotlin类类型参数:未检测到不匹配

Hi *_* Lo 1 java kotlin

Kotlin代码:

class Inva<T>{
    fun <T> x(y:T) {}
}

fun main(args: Array<Integer>) {
    var inva = Inva<Int>()
    inva.x(“123”)
}
Run Code Online (Sandbox Code Playgroud)

Java等价物:

public class Vab<T> {

    void x(T y) {}

    public static void main(String[] args) {

       Vab<Integer> vab = new Vab<Integer>();

       vab.x("123");

   }
}
Run Code Online (Sandbox Code Playgroud)

为什么Kotlin代码允许不变量,而Java代码被正确标记为无效?

Ale*_*rov 5

这些代码片段不相同,因为Java代码段使用其类的type参数而不是声明它自己的类型参数.

类似的Java方法声明就像这样(注意<T>方法本身的附加内容):

<T> void x(T y) {}
Run Code Online (Sandbox Code Playgroud)

通过此更改,Java类将像Kotlin变体一样进行编译.

  • 啊,好的,谢谢......我错过了这个. (2认同)