Java 为什么PMD基本规则集不捕获空解引用?

Java 为什么PMD基本规则集不捕获空解引用?,java,pmd,Java,Pmd,我使用的是PMD插件3.2.6.v2009033006。但pmd中的默认规则集未捕获可能的空指针异常 Java代码 public class SignUp extends HttpServlet{ public void doGet(HttpServletRequest req , HttpServletResponse res){ String user = req.getParameter("user"); user.trim(); }

我使用的是
PMD插件3.2.6.v2009033006
。但pmd中的默认规则集未捕获可能的空指针异常

Java代码

public class SignUp extends HttpServlet{
     public void doGet(HttpServletRequest req , HttpServletResponse res){
        String user = req.getParameter("user");
        user.trim(); 
     }
}
user.trim()
如果
用户
变量为空,则容易出现空指针异常。我用pmd检查了我的代码,但它不会表明这一点吗? 我怎样才能捕捉到这个。是否有任何自定义pmd规则集可用


是否有任何自定义规则集可用于捕获此信息?

PMD不是用于此信息的合适工具。您应该使用FindBugs来捕获此类问题

但是,即使使用FindBugs,您也不会捕获任何内容,因为上面的代码非常合理,并且没有任何错误,除非您知道
getParameter(“user”)
可以返回null,并且在这种情况下还有比抛出NullPointerException更好的方法

如果这样的代码触发了一个错误,那么对另一个方法返回的对象调用方法的每一行代码基本上都会触发一个错误。FindBugs支持注释,该注释允许声明方法的调用方应始终检查此方法返回的结果是否为null。看见但当然,对于第三方代码,除了编写自己的规则之外,您什么都不能做