修饰符“const”不能应用于“局部变量”,为什么?

3

当我像这样尝试放置 const val

const val DRAWABLE_RIGHT : Int = 2

在一个方法中,我遇到了以下错误:

修饰符“const”不适用于“局部变量”

当我将这个 const val 移动到类的顶部,像这样:

class MyClass @JvmOverloads constructor(context: Context) : ConstraintLayout(context) {
    const val DRAWABLE_RIGHT : Int = 2
    ...
}

编译器报错,说它仍然不正确:

常量“val”仅允许在顶层或对象中使用

什么是“顶层”?

1个回答

2

顶层意味着应该将变量放在类外面。

也可以将其放在伴生对象中。


1
顶层意味着在任何类定义之外。该消息说“或者在对象中”来描述其他允许的情况。将对象的成员称为“顶层”是不正确的。 - Tenfour04
也可以把它放到伴生对象内部。 - Alexey Romanov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接