这篇 SO 文章概述了如何测试 Lateinit var 是否已初始化。然而,在示例中,lateinit var 很方便地位于同一类中。
你如何在课堂之外做同样的事情?这是我的情况:
Foo.kt
class Foo {
lateinit var foo: String
}
Run Code Online (Sandbox Code Playgroud)
巴克特
class Bar {
fun doSomething() {
val foo = Foo().foo
if (::foo.isInitialized) { // Unsupported [reference to variables aren't supported yet]
Log.i("TAG", "do something")
}
}
}
Run Code Online (Sandbox Code Playgroud)
有什么解决方法吗?
我的项目作为多个模块。本质上,会有跨多个模块使用的资源。我们将此资源命名为 logo_image.png
目前,在每个模块的 res 文件夹中,都存在一个 logo_image.png 的副本。这可能是一个问题,因为它会占用大量空间。
我想做的是创建一个 Common 模块,它存储整个项目中使用的所有资源,并且所有引用都指向该 Common 模块中的资源。这样的事情可能吗?这是我的尝试(失败了)
<ImageView
android:id="@+id/imageView"
android:layout_width="300dp"
android:layout_height="150dp"
android:src="@common/drawable/logo_image" /> <-- "Unknown reference
Run Code Online (Sandbox Code Playgroud) 这是房间数据库的官方文档。它包含以下代码
val db = Room.databaseBuilder(
applicationContext,
AppDatabase::class.java, "database-name"
).build()
Run Code Online (Sandbox Code Playgroud)
我想知道"database-name"数据库生成器中的功能是什么。有哪些实际、实实在在的效果?