用于注释的Checkstyle

时间:2016-04-15 22:31:08

标签: checkstyle

我想创建一个checkstyle规则,在除了函数参数和每个循环之外的单独行上强制执行注释。有没有办法创建这样的规则,以便以下代码有效:

@Deprecated
public class Annotation
{
  @Deprecated
  public void test(@Nullable String s) {
    @Rule
    Integer i;
    for (@Nullable Char c : s.getChars()) {
    }
  }
}

1 个答案:

答案 0 :(得分:1)

您可以使用AnnotationLocation检查,但看起来现在无法创建此类规则,因为Integer iChar c都是VARIABLE_DEF,因此您可以强制执行所有变量定义以使其具有单独注释:

    <module name="AnnotationLocation">
      <property name="allowSamelineSingleParameterlessAnnotation" value="false"/>
    </module>

或允许他们在同一条线上:

    <module name="AnnotationLocation">
      <property name="allowSamelineSingleParameterlessAnnotation" value="false"/>
      <property name="tokens" value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF"/>
    </module>

但是,对于AnnotationLocation检查的新选项是个好主意。请为此创建一个问题:issue trackingHow to request new feature for existing functionality?