android - 没有主构造函数,超类型初始化是不可能的
问题描述
我想创建一个扩展 BaseAdapter 的适配器,如下所示:
class TestAdapter: BaseAdapter() {
var mData:LinkedList<String>?=null
var mContext:Context?=null
constructor(mData: LinkedList<String>?, mContext: Context?) : super() {
this.mData = mData
this.mContext = mContext
}
Blablabla…….
}
但是 AS 给了我一个错误信息:没有主构造函数,超类型初始化是不可能的。
解决方案
看起来您只想TestAdapter
拥有一个构造函数(带有参数的构造函数),对吧?如果是这样,您应该重写它并将参数作为类声明的一部分而不是使用单独的constructor
,如下所示:
class TestAdapter(mData: LinkedList<String>?, mContext: Context?) : BaseAdapter()
相反,如果您想要TestAdapter
有两个构造函数(一个没有参数,一个有参数),那么您需要按如下方式进行:
class TestAdapter() : BaseAdapter() {
constructor(mData: LinkedList<String>?, mContext: Context?) : this() {
// ...
}
}
推荐阅读
- amazon-web-services - 如何从 Parquet 文件将键值对 (MAP) 加载到 Athena?
- python - 如何制作这样的数组?
- three.js - THREE.JS 一个复杂几何体(地形)上的多个纹理(60+)
- visual-studio-code - 如何在 Visual Studio Code 的 launch.json 中使用 IDE 变量
- javascript - 如何使用 Javascript 在一个元素下嵌套多个 HTML 元素?
- android - 我正在玩一款也可以在 PC 上使用的 Android 版游戏,不知何故,它正在注册键盘命令?
- r - 根据标准 (R) 生成滚动计数
- javascript - jquery val() 自动从数字变为未定义的时间
- kotlin - 通用参数化变量/常量的语法
- c++ - 覆盖打印功能不覆盖基类