【发布时间】:2017-07-06 15:31:21
【问题描述】:
我有一个公开可见的 Int 来保存当前的应用程序主题。
var themeId: Int = R.style.AppTheme
private set
如果我用@StyleRes注释值
@StyleRes var themeId: Int = R.style.AppTheme
private set
我收到警告
此注解不适用于 void 类型;预期 int 或 long
如果我将变量更改为val,则不会显示错误。
我也可以通过添加 @JvmField 注释来消除错误,但这会消除拥有私有 setter 的能力。
是我错误地使用了注解,还是 Android Studio 上的 Kotlin 有问题?
编辑:
getter 可以被注解
var themeId: Int = R.style.AppTheme
private set
@StyleRes get
【问题讨论】:
-
你试过
@field:StyleRes或@get:StyleRes吗? -
两者给出的信息和以前一样。
-
private @StyleRes var themeId: Int = R.style.AppTheme怎么样? -
同样的消息仍然出现。我刚刚意识到我可以注释 getter,添加到问题中。
-
所以,它可以按您的预期工作。没关系。因为 kotlin 有很多功能还没有做好。
标签: android-studio annotations kotlin