Overload resolution ambiguity. All these functions match. kotlin 开发问题日常记录

平时在开发的过程中,
如果我们用定义了一个泛型类,同时定义了两个重载方法,比如:

package com.company
class ListT<T> {
    fun add(position: Int) {}
    fun add(t: T) {}
}

然后我们在使用的过程中如果这么使用

package com.company
import java.io.Serializable
object Main {
    @JvmStatic
    fun main(args: Array<String>) {
        //无法进行编译
        val listT = ListT<Serializable>()
        listT.add(0)
        listT.add("")
    }
}

就会报错,提示Overload resolution ambiguity. All these functions match.
public final fun add(t: Serializable): Unit defined in com.company.ListT
public final fun add(position: Int): Unit defined in com.company.ListT

这个问题在java中没有问题,编译正常

Overload resolution ambiguity. All these functions match. kotlin 开发问题日常记录_第1张图片
目前我不知道解决方案,先记录一下,如果有人知道的,可以告知一下,谢谢

你可能感兴趣的:(kotlin,kotlin)