我们正在使用Sonar进行代码分析。对于类似这样的课程
public class Car {
private Engine engine;
// getter setter for engine
}
我们收到错误,例如
Non-abstract classes and enums with non-static, private members should explicitly initialize those members, either in a constructor or with a default value.
我们通常使用Jackson序列化我们的对象,因此构造函数不会在我们的代码中的任何地方使用。那么为什么我还需要编写一个构造函数呢?禁用此规则是否有意义? Rule Link
另一件事,如果我改变代码如下
private Engine engine = null;
不会抛出错误。默认情况下,所有Java引用都分配有空值。这条线是否愚弄了声纳?这应该是Sonar中的一个错误吗?
答案 0 :(得分:2)
在许多开发人员共享的代码中添加许多// NOSONAR是一种不好的做法,因为这样做很快就会成为一种约定并且会破坏使用Sonar的目的。我建议只需提交Sonar并添加初始化。要么是,要么关掉规则。