声纳有这个规则:
不访问实例数据的不访问实例数据的
try: your line to make http requests except: pass
方法应为private
static
方法可以是private
防止对方法合同的任何误解。
我在一个从匿名内部类创建新对象的方法中有这个警告。
static
class Exemple {
private Object _instanceObject;
...........
private Something createSomething(String key) {
return new Something(key) {
@Override
public Object getValue(Object element) {
return _instanceObject.getSomething(element);
}
};
}
}
如何是非静态字段。我无法对非静态字段_instaceObject
进行静态引用。正如声纳所说,我不能将此方法设为静态,因为存在访问实例数据。
我的问题是,Sonar没有在匿名内部类中看到_instanceObject
的使用,因此Sonar向我显示警报:不访问实例数据的私有“方法应该是”静态的“ 。声纳说我应该将方法_instanceObject
设为静态。
将“createSomething”设为“静态”方法。
使用注释// NOSONAR来忽略Sonar指示的这种错误违规是否合适?
Ignore violations with the new ‘//NOSONAR’ comment
NOSONAR标记告诉Sonar忽略特定的所有违规行为 排除用于扫描代码的任何规则引擎。当然, Sonar仍然可以管理广泛使用的// NOPMD和// CHECKSTYLE:OFF … 上。我们只是添加了一种本地方式来管理误报。 对于已激活的用户,此功能是一项真正的改进 Findbugs规则,因为没有干净的方法将Findbugs标记为false 积极的:现在有'// NOSONAR'。
它是声纳中的一个已知错误吗?
答案 0 :(得分:0)
通过将Sonar升级到5.1.2版本来解决问题