私有属性名称不符合正则表达式

34

在使用Mac上的Android Studio 3.0时,以下代码会在Kotlin项目中返回此警告。

private val REQUEST_CODE = 11 
private val TAG = "RecentCallsActivity"

私有属性名“REQUEST_CODE”的命名不符合推荐的命名规范,它不匹配正则表达式“_?[a-z][A-Za-z\d]*” less... (⌘F1) 报告不遵循推荐命名约定的私有属性名。

推荐的命名约定是什么?

我发现了一个类似的问题,回答了如何禁用相同的功能。

enter image description here

更新:在某些示例中,我看到了这种用法,可以消除警告。

class KotlinExampleActivity : Activity() {

companion object {
    val TAG: String = KotlinExampleActivity::class.java.simpleName
}
3个回答

37

这是一个警告,你可以忽略它。如果它让你困扰,将它们声明为private const

private const val REQUEST_CODE = 11 
private const val TAG = "RecentCallsActivity"

class RecentCallsActivity : AppCompatActivity() {

或者您可以在伴生对象中声明const val。两种方法之间的主要区别在于,在后者中,您将创建一个无意义的额外对象(即伴生对象)。


4
不能忽视警告,因为它是有原因的。但是添加const是正确的方法。 - Muz
1
你如何在类中添加 const?这样每个标签在调试日志中都有自己的作用域。 - SMBiggs
@scottbiggs 使用伴生对象。 - Blackbelt
1
添加 'const',然后 '分析代码' 报告将建议放置在伴生对象中。 - mobibob
将其置于顶层也会创建一个Java对象。因此,无论如何,您都将拥有一个静态对象。 - Jeff Padgett
常量“val”只允许在顶层、命名对象或伴生对象中使用。 - Duna

12

9

我认为它要求您使用驼峰式命名,例如,不要使用 REQUEST_CODE,而是使用 requestCode,或者另一种选择是将其放在 companion 对象中。

 companion object {
        private const val TAG: String = "RecentCallsActivity"
    }

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