我刚装了PMD分析我的Java项目。非常好的工具,强烈推荐。 不管怎么说,我得到了一些错误,他说:

  

“在一个抽象类的空方法应该是抽象的而不是”

我检查了PMD文档和解释说:

  

作为显影剂可依赖于这个空的实现而不是代码的适当的一个

所以,我想我明白这背后的代码风格错误的原因,但考虑以下情形:我有一个叫实体抽象类。这个类有默认实现一个布尔值方法。 (控制后是否要删除删除其相关实体)。只有少数派生类重写此默认行为为true。

我应该删除默认的实现,并强制所有派生类申报自己的行为? 你真的认为这个模式是这样一个不好的做法?

<强>澄清: PMD治疗与单return语句作为空的方法

有帮助吗?

解决方案

我认为这只是一个指导方针。它告诉你,让你可能要重新考虑你的设计,但如果你的设计已经是非常合情合理的,没有理由服从软件,而不是你的大脑。

其他提示

如果您有关于Java 1.8,可以使实体的接口,而不是一个抽象类,写了默认为您在这方式的实施。

public interface Entity {
    default boolean yourMethod() {
        //default implementation ...
    }
}

可以使用此以供参考: https://docs.oracle.com/javase/tutorial/java/IandI /defaultmethods.html

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top