我想允许实现接口的类将泛型类型参数传递给方法。但是编译器无法检测类型,下面的代码无法工作。
interface Handler<T> {
fun execute(): T
fun process(data: T)
}
class StringHandler : Handler<String> {
override fun execute(): String {
//
}
override fun process(data: String) {
//
}
}
class IntHandler : Handler<Int> {
override fun execute(): Int {
//
}
override fun process(data: Int) {
//
}
}
fun main() {
val handler by lazy {
if (true) {
StringHandler()
} else {
IntHandler()
}
}
val data = handler.execute()
handler.process(data)
}
1条答案
按热度按时间zpgglvta1#
试试这个代码: