【问题标题】:Accessing abstract inner class variables from another abstract inner class (Android Kotlin)从另一个抽象内部类(Android Kotlin)访问抽象内部类变量
【发布时间】:2020-02-29 00:27:19
【问题描述】:

我正在尝试从ProductTable 中的ProductImageTable 访问TABLE_NAME 以将其放入查询中。我到处搜索如何访问它,到目前为止我一无所获。我会很感激一些帮助,请:)

这是代码的 sn-p:

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)"
}

【问题讨论】:

    标签: android kotlin


    【解决方案1】:

    试试

    abstract inner class ProductImageTable : ProductTable() {
    

    如果您从该字段所在的类继承,那么您应该能够访问它。

    您也可以将 TABLE_NAME val 设为 const(有关 const 的更多信息,请参阅 https://stackoverflow.com/a/37596023/2399024):

    const val TABLE_NAME: String = "product"
    

    顺便说一句:也许您可能想使用 https://developer.android.com/jetpack/androidx/releases/room 而不是手动执行 sql 查询

    【讨论】:

    • 感谢您的回答! :) 我把所有东西都放在了一个伴生对象中,所以我现在可以访问变量了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-29
    • 1970-01-01
    • 2015-08-01
    • 1970-01-01
    • 2018-03-04
    • 2012-11-15
    • 1970-01-01
    相关资源
    最近更新 更多