下面的代码分析是什么意思?

pho*_*nix 5 java code-analysis intellij-idea

我在我的代码(AggregateFunctions)中只有一个地方实例化了一个对象,如下所示。

    private String selectColumns() {
        String query = "SELECT ";

        if (this.distinctResults) {
            query = query + "DISTINCT ";
        }

        SelectColumn selectColumn = new SelectColumn(this);

        if (!this.applyAggregation) {
            for (Object object : this.columns) {
                query = selectColumn.selectColumn(query, object);
            }
        } else {
            AggregateFunctions aggregateFunctions = new AggregateFunctions(this);
            query = query + aggregateFunctions.select();
        }
        //Remove extra ', '
        query = query.substring(0, query.length() - 2) + " FROM ";
        return query;
    }
Run Code Online (Sandbox Code Playgroud)

构造器:

    public AggregateFunctions(@NotNull SqlQueryGenerator sqlQueryGenerator) {
        this.spaceEncloser = sqlQueryGenerator.getSpaceEncloser();
        this.selectColumn = new SelectColumn(sqlQueryGenerator);
        JSONObject formData = sqlQueryGenerator.getFormData();
        this.columns = formData.getJSONArray("columns");
        this.aggregateJson = formData.getJSONObject("functions").getJSONArray("aggregate");
        this.aggregatesList = new ArrayList<Aggregate>();
        prepareAggregates();
        this.query = new StringBuilder();
    }

    public SelectColumn(SqlQueryGenerator sqlQueryGenerator) {
        this.sqlQueryGenerator = sqlQueryGenerator;
    }
Run Code Online (Sandbox Code Playgroud)

但是 IntelliJ 代码分析对递归调用做了以下说明。基本没看懂意思。任何人都可以详细说明以帮助我理解吗?

问题概要

构造函数有用法,但它们都属于递归调用链,没有成员可从入口点访问。   

问题解决

  1. 安全删除
  2. 注释掉
  3. 添加为入口点

Bas*_*ers 5

这是来自未使用声明检查的警告。IntelliJ IDEA 认为构造函数无法从任何入口点访问。然而,构造函数并未被使用,但用法本身是无法访问的。

如果您的代码不是这种情况,则可能是 IntelliJ IDEA 中的错误。