Kotlingenerics抽象类
我在Kotlin有一个抽象类:
abstract class SimpleRecyclerAdapter constructor( context: Context, var data: MutableList ): RecyclerView.Adapter() { //inner class inside main abstract class Holder constructor(view: View) : RecyclerView.ViewHolder(view) {} }
一切工作正常,但我的内部类Holder
没有看到outer
类和data
variables的D
参数
如果我把Holder
类标记为inner
类:
abstract inner class Holder constructor(view: View) : RecyclerView.ViewHolder(view) {}
D参数现在可见,但在这里
SimpleRecyclerAdapter
即时通讯得到一个错误"2 type arguments expected for class..."
和在这里RecyclerView.Adapter
"expected RecyclerView.ViewHolder, found VH"
– 似乎像VH
是不可见的。 我在哪里错了? 我需要一个inner
类中的D
参数,但内部关键字不工作。
要修复添加inner
修饰符时遇到的错误,您需要在内部类的use site中指定外部类的types参数:
abstract class SimpleRecyclerAdapter.Holder, D> ^^^^^^^
和完整的代码:
abstract class SimpleRecyclerAdapter.Holder, D> ( context: Context, var data: MutableList ): RecyclerView.Adapter() { //inner class inside main abstract inner class Holder constructor(view: View) : RecyclerView.ViewHolder(view) { fun foo(d: D) = Unit // D is visible here } }
- 无法传递结果ResultInfo {who = null,request = 2,result = 0,data = null}相机
- 如何使用Android绑定库和Kotlin从视图绑定onClick事件?
- 即时应用基本功能的Application.onCreate()永远不会被调用
- Base 64编码和解码示例代码
- Kotlin是否支持100%的Ormlite? (数据类)
- 用RX和Kotlin编写网络请求
- 架构组件:ViewModelProvider如何知道调用哪个构造函数?
- java.lang.VerifyError在Kotlin中编写Android测试的特性
- Android:如何为Kotlin中的所有对象列表创建类型转换器(for Room)