java – 检测作为参数传递的对象的更改值

我现在正在使用看起来像这样的代码

public String getName(User user) {
     user.setSth(...);
     return user.getName();
}

我认为改变作为参数传递的对象是不好的做法.有没有一种工具可以检测到那种代码?我查看了findbugs,pmd和checkstyle,但找不到任何检查.

附:抱歉的坏榜样.

解决方法:

我认为你已经走在正确的轨道上:你检测这种代码的最佳工具几乎肯定是Findbugs.但是,你可能需要为这种模式编写自己的探测器. Here is an example你将如何编写一个探测器,尽管它并不是你想要的探测器.

警告:我真的不同意副作用吸气剂总是坏的风格.但是,如果你真的想找到那种东西,我会推荐Findbugs.

上一篇:java – Double-Checked Locking从checkstyle中消失了 – 为什么?


下一篇:java – gradle checkstyle只输出警告,但构建成功