Checkstyle “Method Not Designed For Extension” error being incorrectly issued?

后端 未结 3 1100
攒了一身酷
攒了一身酷 2020-12-06 09:11

I\'m using Checkstyle and am getting an error about this method:

public final String getAdmitCodeStatus() {
    return admitCodeStatus;
}

H

3条回答
  •  爱一瞬间的悲伤
    2020-12-06 09:40

    It looks to be caused by the DesignForExtension rule. According to the documentation:

    Checks that classes are designed for extension. More specifically, it enforces a programming style where superclasses provide empty "hooks" that can be implemented by subclasses.

    The exact rule is that nonprivate, nonstatic methods of classes that can be subclassed must either be

    abstract or
    final or
    have an empty implementation
    

    Rationale: This API design style protects superclasses against beeing broken by subclasses. The downside is that subclasses are limited in their flexibility, in particular they cannot prevent execution of code in the superclass, but that also means that subclasses cannot corrupt the state of the superclass by forgetting to call the super method.

    Source: http://sonar.15.n6.nabble.com/design-for-extension-rule-tp3200037p3200043.html

    But since your method has a final modifier, I'd say you found a bug and might want to log a bug report. https://github.com/checkstyle/checkstyle/issues

提交回复
热议问题