【发布时间】:2018-03-02 17:12:55
【问题描述】:
我有一个这样的界面:
interface ItemClickListener<in T : Item> {
fun onClick(item: T)
}
我有一个有点像这样的课程:
abstract class MyClass {
private var itemClickListener: ItemClickListener<*>? = null
fun <I : Item> setOnClickListener(clickListener: ItemClickListener<I>) {
this.itemClickListener = clickListener
}
}
稍后,如果我想使用那个监听器,它会失败:
itemClickListener?.onClick(item)
我明白了:
外投影类型 'ItemClickListener?'禁止使用'public abstract fun onClick(item: T): Unit defined in my.package.ItemClickListener'
在我的类上声明 itemClickListener 属性的正确方法是什么?
【问题讨论】: