Java Checkstyle";“方法不是为扩展而设计的”;错误发布错误?

Java Checkstyle";“方法不是为扩展而设计的”;错误发布错误?,java,checkstyle,Java,Checkstyle,我正在使用Checkstyle,但收到有关此方法的错误信息: public final String getAdmitCodeStatus() { return admitCodeStatus; } 下面是我得到的错误: 方法“getadmitdestatus”不是为扩展而设计的-需要是抽象的、最终的或空的 该方法为何不符合要求?对于这种方法,Checkstyle会对我大发雷霆吗?这似乎是由DesignForExtension规则引起的。根据: 检查类是否为扩展而设计。更具体地说,它

我正在使用Checkstyle,但收到有关此方法的错误信息:

public final String getAdmitCodeStatus() {
    return admitCodeStatus;
}
下面是我得到的错误:

方法“getadmitdestatus”不是为扩展而设计的-需要是抽象的、最终的或空的


该方法为何不符合要求?对于这种方法,Checkstyle会对我大发雷霆吗?

这似乎是由
DesignForExtension
规则引起的。根据:

检查类是否为扩展而设计。更具体地说,它 在超类提供空“钩子”的情况下强制执行编程样式 这可以通过子类实现

确切的规则是类的非私有、非静态方法 可以是子类必须是

abstract or
final or
have an empty implementation
理由:这种API设计风格保护超类不受冲击 被子类打破。缺点是子类在 它们的灵活性,特别是它们不能阻止代码的执行 在超类中,但这也意味着子类不能损坏 由于忘记调用super方法而导致的超类状态

资料来源:

但是,由于您的方法有一个
final
修饰符,我认为您发现了一个bug,可能需要记录一个bug报告。

乍一看,这到底是一种什么样的编程风格。。。 这只是检查您是否计划继承方法…然后您可以声明它们
最终、抽象或空实现。
然后你宣布它是最终的…;)
类可以是final,也可以是单独的方法,具体取决于需求场景。

我认为这个检查很有用,而且大多数时候警告是正确的。有时它是不合适的,然后我会忽略它。

您是否有另一个违反该规则的
getadmitdestatus
实例?例如,是否有一个基类使用非空的主体实现该方法?您能否将该类设置为final,以查看它是否消失(如果您的类确实可以设置为final)?@Chris:好主意,但我没有。我只是做了一次搜索,以确保没有其他方法共享这个名称。@CoolBeans:不幸的是,我不能使这个类成为final或abstract。我会按原样实例化这个类,在某些情况下,扩展它并实例化子类。你的问题得到回答了吗?这似乎并没有回答问题。OP宣布他的方法是最终的,这似乎满足了规则,他在寻找一个解释,为什么他仍然得到错误。这是我的坏内森!我读得不好。我也是新来的,所以请原谅,从现在开始发帖时会更加小心。谢谢!:)别担心,误读问题很容易,我总是这样做。@Chris你说得对。我修改了我的答案,表明它并没有真正回答OP的问题。