Mau*_*zey 2 java findbugs sonarqube
这有什么不对......?
public final void setListValid(final List<ValidRes> listValidRes) {
this.listValidRes = listValidRes;
}
Run Code Online (Sandbox Code Playgroud)
声纳叫喊我:
Inconsistent synchronization of xxx.listValidRes; locked 50% of time
有谁知道我需要做什么?
Fil*_*dor 14
问题中给出的代码没有同步.我假设您this.listValidRes
在代码中的其他位置同步.正是这就是Sonar告诉你的:如果你在资源上进行同步就会对所有用法进行同步,或者根本不做,并让其他人处理它.
基本上这是一个设计决定:
您可以选择不同步并让客户端烦恼.优点是没有同步它会明显更快.因此,如果您的类在单线程设置中使用,那么抛弃同步会更好.但明确记录它不是线程安全的,或者客户端会使用多线程并抱怨奇怪的错误......
如果您选择(或必须)同步,则在每次使用关键资源时执行此操作.有不同的方法来实现这一目标.也许您想要显示您实际上已同步的资源的用法.也许我或其他人可以给你一些好的建议.