android - 从另一个抽象内部类(Android Kotlin)访问抽象内部类变量
问题描述
我正在尝试TABLE_NAME
从ProductTable
in访问ProductImageTable
以将其放入查询中。我到处搜索如何访问它,到目前为止我一无所获。我会很感激一些帮助,请:)
这是代码片段:
abstract inner class ProductTable : Table() {
val TABLE_NAME: String = "product"
}
abstract inner class ProductImageTable : Table() {
val SQL_CREATE_TABLE : String = "CREATE TABLE $TABLE_NAME" +
" ($_ID$ID_TYPE_AUTO_INC$COMMA_SEP" +
"$COLUMN_PRODUCT_UUID$TEXT_TYPE_NOT_NULL$COMMA_SEP" +
"$COLMUN_LOCAL_IMAGE_FILE$TEXT_TYPE_NOT_NULL_EMPTY$COMMA_SEP" +
"$COLUMN_SERVER_IMAGE_URL$TEXT_TYPE_NOT_NULL_EMPTY$COMMA_SEP" +
"FOREIGN KEY($COLUMN_PRODUCT_UUID) REFERENCES ${ProductTable.TABLE_NAME}(${ProductTable.COLUMN_PRODUCT_UUID}) ON UPDATE CASCADE ON DELETE CASCADE)"
}
解决方案
尝试
abstract inner class ProductImageTable : ProductTable() {
如果您从该字段所在的类继承,那么您应该能够访问它。
您也可以将您的 TABLE_NAME val 设为 a const
(有关 const 的更多信息,请参见https://stackoverflow.com/a/37596023/2399024 ):
const val TABLE_NAME: String = "product"
顺便说一句:也许您可能想使用https://developer.android.com/jetpack/androidx/releases/room而不是手动执行 sql 查询
推荐阅读
- reactjs - (React Redux TS) 类型“Readonly<{}> & Readonly<{ children?: ReactNode; }>'
- flutter - 为颤振运行linkedin登录示例时执行错误
- apache-spark - 将数据从现有行复制到 spark sql 中的另一现有行
- java - JavaFX WebView 不适用于 Spring Boot Maven
- android - Android Q - 如何使用 C++ 中的存储访问框架列出目录内容
- laravel - 无法从浏览器查看 Laravel 默认页面
- oracle - 如何使用 OR 操作添加具有 2 个条件的 Oracle SQL 约束
- spring - 将 HeapByteBuffer 转换为 UUID
- ios - 多个模态呈现(页面表)ViewControllers Navigation Item Bug
- android - 我的 switch 语句似乎返回了一个值,但并没有一直到它自己的函数