gpt4 book ai didi

java - 为什么Java接口(interface)常量被Checkstyle中的ConstantName检查视为非公共(public)的

转载 作者:行者123 更新时间:2023-12-01 13:01:54 24 4
gpt4 key购买 nike

在我们的项目中,我们希望确保私有(private)常量始终以 开头_ (下划线)和其余部分都不以下划线开头。
checkstyle检查常量名 未能将接口(interface)常量视为公共(public)并应用私有(private)修饰符的规则。
我们在我们的 gradle 项目中使用 checkstyle 8.35 来分析 java 代码(OpenJdk 11,Gradle 6.4)。
下面是带常量的接口(interface)的代码片段。

public interface MyInterface() {
int MAX_SIZE = 1024;

//Some methods here
}
的检查样式配置常量名 检查如下
<module name="ConstantName">
<property name="format" value="^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$"/>
<property name="applyToPrivate" value="false"/>
</module>
<module name="ConstantName">
<property name="format" value="^_[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$"/>
<property name="applyToPublic" value="false"/>
<property name="applyToProtected" value="false"/>
<property name="applyToPackage" value="false"/>
</module>
运行 checkstyle 分析后报告了 MAX_SIZE 的错误如 Name 'MAX_SIZE' must match pattern '^_[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$'.而我们的期望是 没有错误 .

最佳答案

通过快速浏览 source code 来判断,这是一个错误。如果关键字 public,他们只会考虑将常量公开。存在(在类中是这种情况,但不是接口(interface))。
我建议将此问题报告为 https://github.com/checkstyle/checkstyle/issues

关于java - 为什么Java接口(interface)常量被Checkstyle中的ConstantName检查视为非公共(public)的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63128481/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com