我有这个实用程序接口由触发 UI 事件的 RecyclerView 的 ViewHolder 实现。
interface ObservableMvpViewHolder<V> {
val listeners: List<V>
fun registerListener(listener:V)
fun unregisterListener (listener: V)
}
该listeners
属性就像一个合同,所以我想强制客户声明它来存储观察者。
但是当我实现这个接口时,我必须为这个属性声明一个 getter:
class AddItemViewHolderHolder(override val containerView: View) : ViewHolder(containerView), LayoutContainer, ObservableMvpViewHolder<AddItemViewHolderHolder.Listener> {
override val listeners: List<Listener>
get() = listeners
我不想这样做以避免将此属性暴露给外部。
我是 Kotlin 的新手,有没有办法在不必声明抽象类的情况下做到这一点?