gpt4 book ai didi

kotlin const val Const 'val' 仅允许在顶层或对象中

转载 作者:行者123 更新时间:2023-12-01 17:42:47 26 4
gpt4 key购买 nike

在我的 Kotlin 项目中,我想在编译时声明常量:

所以我用这个:

@RunWith(AndroidJUnit4::class)
class TradersActivityTest {

private lateinit var mockServer: MockWebServer
private const val ONE_TR = "no_wallets.json" // error here

但是我有编译时错误:

Const 'val' are only allowed on top level or in objects

如何声明编译时常量?

最佳答案

const val不能在类中。对于您来说,这意味着您需要在对象或伴生对象中将其声明为顶级(这也正是错误消息所说的内容)。

由于您的值是私有(private)的,因此伴生对象是您可以使用的两个选项之一:

class TradersActivityTest {
...
companion object {
private const val ONE_TR = "no_wallets.json"
}
}

这样做使得它只能被类访问。

<小时/>

第二个选项是顶级选项。但是,请注意,这会将其公开给文件的其余部分,而不仅仅是一个类:

private const val ONE_TR = "no_wallets.json"

...

class TradersActivityTest {
...
}
<小时/>

为了完整起见,第三个选项是使用对象:

object Constants {
const val ONE_TR = "no_wallets.json"
}

但是,它需要公开才能访问。它也可以是内部的,但这又取决于您想要访问的内容。

关于kotlin const val Const 'val' 仅允许在顶层或对象中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55880604/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com