【问题标题】:Java Code Conventions: must match pattern '^[a-z][a-zA-Z0-9]*$'Java 代码约定:必须匹配模式 '^[a-z][a-zA-Z0-9]*$'
【发布时间】:2012-10-30 20:03:23
【问题描述】:

我想使用以下常量:

final String ADD = "Add text";

但我的 CheckStyle 工具告诉我“添加”与 '^[a-z][a-zA-Z0-9]*$'. 模式不匹配

谁能告诉我'ADD'有什么问题? 意味着'^[a-z][a-zA-Z0-9]*$' 每个名字都必须以低字符开头? 没有其他可能吗?

感谢您的回答。

【问题讨论】:

  • 局部变量、类字段和实例字段应该大写驼峰式。 ALL_CAPS 用于静态决赛。
  • ^ 表示字符串开头,[a-z] 表示 a 和 z 之间的字符匹配 1 次(= 1 个小写字母),[a-zA-Z0-9]* 表示 ' [a-zA-Z0-9]' 中有零个或多个字符,$ 是字符串结尾。

标签: java coding-style


【解决方案1】:
^[a-z][a-zA-Z0-9]*$

这个正则表达式描述了以小写开头,其余部分由大写、小写和数字组成的内容。 (例如:aVariablevariableaNewVariablevariable7aNewVariable7。)

如果您希望您的字段保持不变和静态,请使用:

static final String ADD = "Add text";

否则,使用:

final String add = "Add text";

【讨论】:

  • OP 问题的第一行:i would like to use the following constant。所以这绝对是一个需要的常数。但是你解释正则表达式很好。为此 +1。
  • @SimonAndréForsberg 是的,但它可以在方法中定义(尽管我不清楚)。无论如何,好点。 ;)
【解决方案2】:

如果是你想要的常量,也应该是static

static final String ADD = "Add text";

常量通常使用大写字母,但由于您的变量不是静态的,因此不会被解释为常量。

【讨论】:

    【解决方案3】:

    这个正则表达式表示需要驼峰式,第一个字母小,然后每个下一个单词的第一个字母为大写。

    【讨论】:

      【解决方案4】:

      我刚刚遇到了同样的问题,事实证明这是因为我正在研究的 Java 代码库期望对所有变量使用驼峰式大小写作为命名约定。因此,请务必检查您的变量是否根据正则表达式模式^[a-z]([a-z0-9][a-zA-Z0-9]*)?$ 命名。就我而言,我陷入了 Python 模式,并且我的变量名为 version_regex 而不是 versionRegex。一旦我进行了必要的更正,就不会再抛出错误了。

      【讨论】:

        猜你喜欢
        • 2012-10-22
        • 2015-02-11
        • 2010-12-11
        • 2015-01-07
        • 2021-11-09
        • 1970-01-01
        • 2019-05-31
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多