首页 > 解决方案 > 在 Kotlin 中有没有办法在一些操作后初始化超类?

问题描述

这可能是非常基本的,但我似乎找不到用生成的值初始化超类的方法。例如,我想膨胀一个视图,然后将它传递给超类 RecyclerView.ViewHolder。

在斯威夫特我会做这样的事情:

class CustomViewHolder: RecyclerView.ViewHolder {
    init(json: JSON) {
        let view = getView(json)
        super.init(view)
    }
}

Kotlin 中是否有类似的方法?还是我必须将视图放在外面,然后将其传递给 CustomViewHolder 和 RecyclerView.ViewHolder?

标签: androidkotlin

解决方案


您可以即从伴随对象调用函数:

class CustomViewHolder(json: JSON) : RecyclerView.ViewHolder(getView(json)) {
    companion object {
        private fun getView(json: JSON): View {
            //...
        }
    }
}

推荐阅读