Доступ к абстрактным переменным внутреннего класса из другого абстрактного внутреннего класса (Android Kotlin) - PullRequest
0 голосов
/ 03 ноября 2019

Я пытаюсь получить доступ к TABLE_NAME из ProductTable в 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)"
}

1 Ответ

0 голосов
/ 03 ноября 2019

Попробуйте

abstract inner class ProductImageTable : ProductTable() {

, если вы наследуете от того класса, где находится это поле, вы должны иметь к нему доступ.

Также вы можете сделать ваше значение TABLE_NAME равным const (см. https://stackoverflow.com/a/37596023/2399024 для получения более подробной информации о const):

const val TABLE_NAME: String = "product"

Кстати: возможно, вы захотите использовать https://developer.android.com/jetpack/androidx/releases/room вместо ручного выполнения SQL-запросов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...