Java &引用;第一句应以句号结尾。”;
Java checkstyle让我困惑不解Java &引用;第一句应以句号结尾。”;,java,checkstyle,Java,Checkstyle,Java checkstyle让我困惑不解 package pmain; /** * Some text here. */ public class Main { } 这就是我所有的代码。Checkstyle在“/**”处显示“第一句应以句号结尾。” 为什么CheckStyle会产生此警告 我需要使用的checkstyle配置是否会被破坏?我做错什么了吗?“这里有些文字”不是第一句话吗?是“.”不是句号?刚刚在我的机器上测试过,实际上无法复制:我没有收到在句子末尾有点的警告。但一旦我
package pmain;
/**
* Some text here.
*/
public class Main {
}
这就是我所有的代码。Checkstyle在“/**”处显示“第一句应以句号结尾。”
为什么CheckStyle会产生此警告
我需要使用的checkstyle配置是否会被破坏?我做错什么了吗?“这里有些文字”不是第一句话吗?是“.”不是句号?刚刚在我的机器上测试过,实际上无法复制:我没有收到在句子末尾有点的警告。但一旦我删除它(并再次运行checkstyle),规则就会正确触发,并且我会在
/**
行中得到警告
注释后面的空白行没有任何区别
再次检查点是否真的是点,而不是“看起来”像点的其他字符。并再次检查在更改文件后是否确实重新运行了checkstyle。它不会自动执行检查
也许有人玩过支票样式设置。实际上,有两个属性控制此规则:
checkfirst句子
,该属性为true或false;以及endofmenteformat
,它是一个正则表达式,应该与句点匹配。但是如果规则集重新定义了该属性…;)
进一步阅读
- 第一句应该以点结尾
/**
*An abstract class that represents an algorithm.
*
* @author zhangtj
*
* @version 1.0
*/
将通过。薄可能是由于评论结尾后的空格或“.”引起的。这让我很恼火。要删除此添加,请执行以下操作:
而且,对我来说,我完全删除了SummaryJavadoc
模块
在checkstyle.xml中关闭此检查
见:
&
我使用两行代码来避免此警告。例如:
/**
* Let's call this as the first sentence,
* here the second one.
*/
您的问题与该行末尾缺少的
有关。要解决此问题,您需要覆盖period
属性。它的默认值是
字符
根据最新版本,建议使用此配置来删除“第一句应以句号结尾。
”警告:
<module name="SummaryJavadoc">
<property name="forbiddenSummaryFragments" value="^@return the *|^This method returns |^A [{]@code [a-zA-Z0-9]+[}]( is a )"/>
<property name="period" value=""/>
</module>
新值,接受行尾的任何数字和字母:
([.?!:][ \t\n\r\f<])|([\d\w.?!:]$)
完成检查配置:
<module name="JavadocStyle">
<property name="scope" value="public"/>
<property name="checkEmptyJavadoc" value="true"/>
<property name="tokens" value="ANNOTATION_DEF, ANNOTATION_FIELD_DEF, CLASS_DEF, CTOR_DEF, ENUM_DEF, INTERFACE_DEF, METHOD_DEF, PACKAGE_DEF, VARIABLE_DEF"/>
<property name="endOfSentenceFormat" value="([.?!:][ \t\n\r\f<])|([\d\w.?!:]$)"/>
</module>
如果删除注释和类定义之间的空行,是否有区别?至少可以确认“.”是一个句号。DI刚刚尝试过,如果删除注释和类定义之间的空行,则没有任何区别。请尝试在包语句之后放置一段时间。你会得到一个编译器错误,但是checkstyle会停止吗?我也很高兴“.”仍然是一个句号。那会很尴尬。我甚至试着把这个评论变成语法正确的句子。还是没什么。还要清洁你的屏幕。有时,这个“点”是食物的一种规格。只是说,我复制粘贴了那个代码,所以不管它是什么字符,在我的问题的代码位中都是相同的字符。我还将你的第一个句号复制粘贴到我的代码中。我还重新运行了checkstyle。没什么。正如我在问题中所说的,我需要使用一个特定的checksyle配置来分配任务。我正在使用一个远程配置来引导。我已经将eclipse配置为使用相同的远程规则,但仍然什么都没有。无法复制您的样本和规则。对不起,哈哈,好的。似乎有些事情很奇怪。我要和一个懂支票风格,能摆弄我电脑的人聊聊天。谢谢你帮我弄明白这是一个“错误和疑难解答”问题,而不是一个“我在编程方面很糟糕”的问题。我确信这不是一个合适的地方来询问为什么这是一个风格建议,但那个地方在哪里?你的例子确实通过了检查,但它不是一个句子(没有动词)。我不得不想象检查的精神是强制执行它是一个句子。第一个句子显示在Javadoc类概述的方法列表中。如果一些条目以点结尾,而另一些条目则不以点结尾,这至少是很难看的。如果您明确指出,这两个条目都是删除此错误所必需的,则会更清楚。删除SummaryJavadoc
不仅仅是一个首选项,它实际上是第2步消除这个句点错误所必需的。
([.?!:][ \t\n\r\f<])|([\d\w.?!:]$)
<module name="JavadocStyle">
<property name="scope" value="public"/>
<property name="checkEmptyJavadoc" value="true"/>
<property name="tokens" value="ANNOTATION_DEF, ANNOTATION_FIELD_DEF, CLASS_DEF, CTOR_DEF, ENUM_DEF, INTERFACE_DEF, METHOD_DEF, PACKAGE_DEF, VARIABLE_DEF"/>
<property name="endOfSentenceFormat" value="([.?!:][ \t\n\r\f<])|([\d\w.?!:]$)"/>
</module>