使用参数注释

时间:2015-11-05 20:27:43

标签: java checkstyle

我正在使用Checkstyle 6.12。我想使用这两个模块:

<module name="ModifierOrder"/>
<module name="FinalParameters"/>

我有一个看起来像这样的方法

@GET
@Path("{thingId}")
@Produces(MediaType.TEXT_PLAIN)
public String getThing(
    final @PathParam("thingId") String thingId,
) {
  return "halp meh";
}

如果我在这上面运行Checkstyle,我得到一个这样的输出:

<checkstyle version="6.12">
  <error line="17" column="13" severity="error" 
      message="'@PathParam' annotation modifier does not precede non-annotation modifiers." 
      source="com.puppycrawl.tools.checkstyle.checks.modifier.ModifierOrderCheck"/>
  ...

如果我带走final修饰符,我仍会收到错误:

<checkstyle version="6.12">
  <error line="17" column="7" severity="error" 
      message="Parameter version should be final." source="com.puppycrawl.tools.checkstyle.checks.FinalParametersCheck"/>

这种方式让我处于一种尴尬的境地,因为我希望使用这两种方法来强制执行我正在编写的代码的代码样式。有没有办法配置Checkstyle在这种情况下工作?

1 个答案:

答案 0 :(得分:0)

正如awks指出的那样,在final工作之前移动注释。

@PathParam("thingId") final String thingId 

我没注意到这一点的原因是因为当我尝试这样做时,我收到了编译错误。问题是我在那里复制了两次注释:

@PathParam("thingId") final @PathParam("thingId")