【问题标题】:Sonar Issue : rename this abstract class声纳问题:重命名这个抽象类
【发布时间】:2022-01-07 13:20:58
【问题描述】:

Sonar 中报告了一个抽象类的简单小问题,它说要根据正则表达式更新类名:'^Abstract|Base[A-Z][a-zA-Z0-9]*$'

看起来很简单,我们只需要在类名前面加上抽象这个词。但令人惊讶的是,它并没有解决问题。

我们真的在为这个愚蠢的事情挠头。 我什至尝试创建一个新类来显示下面的错误。现在,谁能指导我为什么声纳仍在报告这个命名约定问题:

【问题讨论】:

  • 我非常不同意这条规则——它没有为每个抽象类添加任何前缀;只是噪音。就个人而言,我会禁用这条规则并继续做一些富有成效的事情。
  • 第二个@BoristheSpider 的评论:它与使用I 前缀接口一样有用。
  • 根据 Sonar 的匹配方式(是否匹配整个类名),正则表达式甚至并不意味着你所说的意思。使用正则表达式调试器找出正则表达式实际匹配的内容。这可能就是为什么即使使用类名AbstractClass 仍然会出现错误的原因。尝试public abstract class BaseJustTestingClass 并报告是否被接受。

标签: java sonarqube abstract-class naming-conventions


【解决方案1】:

现有规则检查类名是否为Abstract,或具有前缀Base,后跟大写字母和字母数字字符。

为了检查抽象类的名称是否应以Abstract or Base prefix 开头,规则中的正则表达式应如下所示:^(Abstract|Base)[A-Z][a-zA-Z0-9]*$

因此,规则中的正则表达式应该被修复,或者只是禁用。

【讨论】:

    猜你喜欢
    • 2017-02-28
    • 1970-01-01
    • 2012-11-15
    • 2011-03-02
    • 1970-01-01
    • 2016-01-03
    • 2022-11-11
    • 2020-11-14
    • 2012-11-03
    相关资源
    最近更新 更多