平时在开发的过程中,
如果我们用定义了一个泛型类,同时定义了两个重载方法,比如:
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中没有问题,编译正常
目前我不知道解决方案,先记录一下,如果有人知道的,可以告知一下,谢谢