1
某處在Java代碼中還有一類ViewHolder
:如何覆蓋Kotlin中的java類的屬性?
public static abstract class ViewHolder {
public final View itemView;
public ViewHolder(View itemView) { this.itemView = itemView; }
....
}
所以在科特林該類的實例包含View
類型的只讀屬性itemView
。我想創建一個通用類ViewHolder<V>
這樣的:
class MyViewHolder<V : View>(itemView: V) : ViewHolder(itemView) {
override val itemView = super.itemView as V // error: itemView overrides nothing
}
如果我刪除override
修飾符的類編譯好了,但是當我嘗試使用itemView
場我得到的Overload resolution ambiguity
錯誤。
我在這裏想要使MyViewHolder
類的itemView
屬性的類型爲V
而不是View
。舉例來說,MyViewHolder(TextView(context)).itemView
將是TextView
。有什麼辦法可以做到這一點?