为什么要返回this.variable不是一个漏洞?

Vam*_*har 8 java this immutability sonarqube

声纳规则squid:S2384引发了这个代码的问题:

public Date getCreatedOn() {
    return createdOn;
}
Run Code Online (Sandbox Code Playgroud)

遵循规则不应存储或直接返回Mutable成员

我明白我们不应该返回原文,而是应该返回该对象的副本.

另一方面,Sonar没有就此代码提出问题:

public Date getCreatedOn() {
    return this.createdOn;
}
Run Code Online (Sandbox Code Playgroud)

是什么让这个代码不同?

我们是不是在第二种情况下退回原件?

Tib*_*ssy 10

这是SonarJava(SonarQube平台中使用的Java静态代码分析器)检测到此问题的方式的缺陷.我创建了以下故障单以改进实现,以涵盖使用返回字段时的情况this.

https://jira.sonarsource.com/browse/SONARJAVA-2424