当前位置: 首页 > 知识库问答 >
问题:

从另一个抽象内部类访问抽象内部类变量(Android静态编程语言)

王宏扬
2023-03-14

我试图从ProductImageTable中的ProductTable访问TABLE_NAME,将其放入查询中。我到处都在搜索如何访问它,但到目前为止我什么也没找到。我将非常感谢您的帮助:)

这里有一段代码

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个答案

缑赤岩
2023-03-14

试试吧

abstract inner class ProductImageTable : ProductTable() {

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

此外,您还可以使表名为val aconst(请参阅https://stackoverflow.com/a/37596023/2399024有关常数的mor信息):

const val TABLE_NAME: String = "product"

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

 类似资料:
  • 问题内容: 我有六个类,它们都扩展了相同的抽象类。抽象类具有一个静态变量,该静态变量指向一些JNI代码,我只希望在每个类实例化时加载一次。 据我了解,这将导致实例化此静态变量的一个实例,但是我想要的是每个扩展类都具有自己的变量静态实例,该实例对于给定的子类是唯一的。我想在我的抽象类中编写一些代码来修改和/或释放该抽象类。是否可以同时执行这两项操作? 例如,我可以编写一个抽象类栏,其中包含变量foo

  • 我有一个带有私有域的类,还有一个带有扩展外部类类型的泛型类型的静态抽象内部类,它试图访问外部类的私有字段,但出现以下错误:-错误:a在外部具有私有访问权限-错误:doSomething在外部具有私有访问权限 见下面的代码: 我正在用jdk 1.7编译 有人能告诉我为什么我得到这个错误。

  • 但是,如果我在内部类中声明了一个同名的variabe呢?有什么方法可以显式引用外部变量吗? 顺便说一句,这和这个问题不同,因为它考虑的是局部堆栈变量。

  • 问题内容: 在内部类中,可以访问外部类的变量,但不能访问方法的局部变量。我了解了无法访问方法的局部变量的部分,但我想知道为什么外部类变量可以访问? 我的理解是,由于内部类与外部类绑定,因此只要父级可用,子级就可以访问其父级变量。我对么? 问题答案: 假设您的外部类在内部类的范围内(非静态)被称为,以获取该字段。 例如, 其中Outer是类的名称,并标识该字段。 您也可以直接抓取它,但是如果由于阴影

  • 在内部类中,外部类的变量是可访问的,但方法的局部变量不是。我理解了关于方法的局部变量不可访问的部分,但我想知道为什么外部类变量是可访问的? 我的理解是,由于内部类与外部类绑定,因此只要父类可用,子类就可以访问其父变量。我说得对吗?