声纳正在给我违反"奇异场"的规则.
我只有一个像这样的方法.
public class MyClass{
MyType object;
public void myMethod(){
object= aMethod(arg); //Returns instance for the class MyType
}
}
Run Code Online (Sandbox Code Playgroud)
在这里myMethod被无数次召唤.
我是否为MyType节省了对象创建的成本?
Sonar告诉我在myMethod()中声明MyType.这会导致对象创建的成本吗?
任何解释请....
在您的实际代码中,完全没有必要声明object为字段.
实际上,它甚至不需要被另一个对象部分访问,因此它的状态没有理由在程序工作流程中被保存(浪费一点点内存......).
因此,垃圾收集器可以在myMethod()完成后立即收集您的本地变量.
声纳希望您声明如下:
public class MyClass{
public void myMethod(){
MyType object = aMethod(arg); //local variable instead of field ;)
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3425 次 |
| 最近记录: |