我在SONAR中注意到我在Java代码中有一个称为IllegalType的冲突。我寻找了这个,并在Checkstyle中对此进行了解释:


检查特定类是否从未在变量声明,返回值或参数中用作类型。包括模式检查,默认情况下不允许抽象类。

理由:帮助减少具体类之间的耦合。另外,应该将抽象类视为接口的便利基类实现,因此它们本身不是类型。


但是我真的不明白为什么这在我的代码中是一个问题。如果有人可以用一个例子更好地解释我,那可能很棒!谢谢你

最佳答案

亚伦·迪古拉(Aaron Digulla)在评论中说的肯定是一种好习惯。但是我也发现了我自己的抽象类(而不是接口)的这个IllegalType问题,在我看来,这不是很清楚。我了解使用intefaces insteaf类的好处,并且我也了解抽象类是部分类的(更多的是类而不是接口),但是我看不到此规则的好处,因为我可以找到我所用的情况可以返回一个具体的类(没有抽象类),它是我实际返回的类的超类。

10-01 14:17