【问题标题】:Private property name doesn't match regex私有属性名称与正则表达式不匹配
【发布时间】:2018-04-18 12:02:49
【问题描述】:

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

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

私有属性名称“REQUEST_CODE”与正则表达式“_?[a-z][A-Za-z\d]*”不匹配... (⌘F1) 报告不遵循建议命名约定的私有属性名称。

推荐的命名约定是什么?

我找到了一个类似的question,它回答了如何禁用它。

更新:在一些示例中,我看到了这种删除警告的用法。

class KotlinExampleActivity : Activity() {

companion object {
    val TAG: String = KotlinExampleActivity::class.java.simpleName
}

【问题讨论】:

    标签: android android-studio kotlin


    【解决方案1】:

    我相信它需要你使用驼峰式命名,例如,而不是 REQUEST_CODE 使用 requestCode 或另一个选项是将它放在一个伴随对象中,例如

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

    【讨论】:

      【解决方案2】:

      这是一个警告,您可以忽略它。麻烦你了,把它们声明为private const

      private const val REQUEST_CODE = 11 
      private const val TAG = "RecentCallsActivity"
      
      class RecentCallsActivity : AppCompatActivity() {
      

      或者您可以在伴随对象中声明const val。这两种方法的主要区别在于,在后者中,您将创建一个毫无意义的附加对象(伴侣)。

      【讨论】:

      • 你不应该忽视它。警告是有原因的。但是添加一个 const 是正确的方法。
      • 如何在课堂上添加const?这样每个 TAG 在调试日志中都有自己的范围。
      • @scottbiggs 使用伴随对象
      • 添加“const”,然后“分析代码”报告会建议放入伴随对象。
      • 把它放在顶层也会创建一个Java对象。所以无论哪种方式,你都会有一个静态对象。
      【解决方案3】:

      Kotlin 默认使用 Java 编码约定。因此建议对变量使用 lowerCamelCase。建议为常量变量使用全大写命名。 更多信息在这里https://kotlinlang.org/docs/reference/coding-conventions.html http://www.oracle.com/technetwork/java/codeconventions-135099.html

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-04-12
        • 2016-01-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-07-14
        • 2014-01-17
        • 1970-01-01
        相关资源
        最近更新 更多