gpt4 book ai didi

java - Kotlin 中的每个类都扩展任何类吗

转载 作者:行者123 更新时间:2023-12-02 09:22:18 26 4
gpt4 key购买 nike

我正在为 RecyclerView 编写扩展函数设置LayoutManagerAdapterRecyclerView该函数应该接受任何从 RecyclerView.Adapter<Any> 扩展的适配器类就像在 Java 中一样,我们使用 RecyclerView.Adapter<?> .我们如何在 Kotlin 中实现这一目标?.

internal fun <T : RecyclerView.Adapter<Any>> RecyclerView.initAndSetAdapter(context: Context, adapter: T) {
this.layoutManager = LinearLayoutManager(context)
this.setHasFixedSize(true)
this.adapter = adapter
}

由于类型无效,对此方法的函数调用未编译。但是如果我更改 Any*然后就可以正常工作了。

internal fun <T : RecyclerView.Adapter<*>> RecyclerView.initAndSetAdapter(context: Context, adapter: T) {
this.layoutManager = LinearLayoutManager(context)
this.setHasFixedSize(true)
this.adapter = adapter
}

为什么方法调用不能用 Any 进行编译类?.Kotlin 中的每个类都会扩展 Any像Java这样的类Object类?.

最佳答案

根据文档: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html

每个 Kotlin 类都有 Any 作为父类(super class)。

话虽这么说 - 适配器采用的类需要从 ViewHolder 扩展。

关于java - Kotlin 中的每个类都扩展任何类吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58607202/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com