我有以下代码,但出现了声纳违规错误:disallowed assignment of parameters
解决此问题的最佳方法是什么?

   /**
     * @param lastAccessTime the lastAccessTime to set
     */
    public void setLastAccessTime(Date lastAccessTime)
    {
        this.lastAccessTime = lastAccessTime == null ? null : new Date(lastAccessTime.getTime());
    }

最佳答案

我怀疑以下两种情况之一正在发生:

1-Checkstyle插件中存在错误

2-分析的声纳代码与您在此处发布的代码不完全相同

我认为在以下情况下应适用违规行为:

    /**
     * @param lastAccessTime the lastAccessTime to set
     */
    public void setLastAccessTime(Date lastAccessTime)
    {
        lastAccessTime = lastAccessTime == null ? null : new Date(lastAccessTime.getTime());
    }


因此,当您重新分配方法参数时,这是预期的,但在您的示例中却不是,而是将其分配给类字段,因此应该可以。

尝试将方法参数更改为final,看看是否仍然看到冲突。

关于java - Sonar 违反“禁止分配参数”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25665812/

10-13 09:42