SonarQube 投诉要么删除这个无用的类对象实例化,要么使用它

Posted

技术标签:

【中文标题】SonarQube 投诉要么删除这个无用的类对象实例化,要么使用它【英文标题】:SonarQube Complaint Either remove this useless object instantiation of class or use it 【发布时间】:2021-02-11 06:01:10 【问题描述】:

我正在尝试修复我从 SonarQube 获得的这个错误,但他们的解决方案建议对我的情况不太有帮助。 我从他们那里得到的建议是:“没有充分的理由创建一个不对其做任何事情的新对象。大多数情况下,这是由于缺少一段代码,因此可能导致意外行为正在生产中。”

任何关于如何处理的建议将不胜感激。

private RootElement GetParentAsRoot(Element element, string method) 
        if (element.Parent == null) 
            new RootElement(element, NewControlsNotifier);
       //Either remove this useless object instantiation of class 'RootElement' or use it.
        
        var root = element.Parent as RootElement;
        if (root == null) 
            throw new ArgumentException(method + " method is applicable only on top-most element");
        
        return root;
    

【问题讨论】:

【参考方案1】:

导致此问题的代码如下:

new RootElement(element, NewControlsNotifier);

您正在使用 new 运算符创建 RootElement,但忽略了它的结果。您应该完全删除对象创建或使用您创建的对象。

如果你想返回你的对象,试试这个:

private RootElement GetParentAsRoot(Element element, string method) 
        if (element.Parent == null) 
            return new RootElement(element, NewControlsNotifier);
        
        var root = element.Parent as RootElement;
        if (root == null) 
            throw new ArgumentException(method + " method is applicable only on top-most element");
        
        return root;
    

【讨论】:

以上是关于SonarQube 投诉要么删除这个无用的类对象实例化,要么使用它的主要内容,如果未能解决你的问题,请参考以下文章

SonarQube使用介绍

shrinkResources 的使用

SonarQube 以 143 退出

检索源码 删除无用Properties的小工具

Sonarqube 抛出错误删除“isNaN”的此覆盖

GC垃圾回收机制