需要注意的是,FindBugs并不能彻底地发现代码中存在的所有问题(有些问题跟并发程序代码可能没有关系)。举例来说,如果在 Task 类的 run() 方法中删去 unlock() 的调用,并重新分析代码,则原先存在的“在任务中获得了锁却可能永远不会被释放”的错误将不再提示。
Task
run()
unlock()
开发者可以利用静态代码分析工具提升代码的质量,却不能因此觉得高枕无忧了。