我想我会试试的,但我得到了很多
/Users/calebcushing/IdeaProjects/ppm/scaf/src/main/java/com/xenoterracide/scaf/Config.java:22: warning: [type.anno.before.modifier] write type annotation @NonNull() immediately before type, after modifiers [abstract]
abstract Map<String, SkeletonConfiguration> getTemplates();
对于此代码
@Nullable
abstract String getWorkdir();
这似乎是我应该写信的建议
abstract @Nullable String getWorkdir();
但这违背了jls,是否有任何方法来禁用此功能?
2条答案
按热度按时间hrysbysz1#
但这违背了jls
仅回答此语句:checker正在实现jls 9.7.4中所描述的内容:
尽管不是必需的,但通常是在所有其他修饰符之前编写声明注解,并在应用它们的类型之前立即编写类型注解。
如checker's的javadoc所示
Nullable
:Nullable
是类型注解因此,它应该出现在应用它的类型之前,即方法的返回类型。
您还在评论中链接了jls 8.4.3。这显示了语法生成
MethodModifier
:这并不直接相关:首先,它说你只能使用其中一个修饰符,所以它不能告诉你任何关于排序的信息。但是如果你查看JLS19,你可以找到
MethodModifier
出现:所以,checker告诉您按照
MethodHeader
生产。guicsvcw2#
你说“这违反了jls”,但事实并非如此。这是合法的java,而且是更好的风格。
checker framework手册描述了如何抑制警告,例如通过
@SuppressWarning("type.anno.before.modifier")
注解或-AsuppressWarnings=type.anno.before.modifier
命令行参数。