如何替换' null'在Java中

时间:2017-08-10 08:37:35

标签: java fortify

还有其他方法替换' null' for HP Fortify null deference fix 。 null传递给我的一个HQL查询,因此我无法使用' StringUtil.EMPTY'替换null。

setAdminCurriculums(getAgencyBA().getCurriculumListByCompany(**null**, false));

*
*
*
*

null值传递给下面的代码。

public String getCurriculumListByCompany(String company, String isCorrect){
*
*
*
  String hql = "select id from UserData where userId = " + company;
*
*
}

1 个答案:

答案 0 :(得分:2)

这取决于你想要在价值' null'通过。 如果你不能保证' null'永远不会通过,你需要在可能发生的方法中处理它。

例如,如果您希望它是一个空字符串,则可以在方法中检查:

 company = company != null ? company : "";

由于您正在进一步处理查询,我认为这实际上不是想要的行为。但是你想做什么?如果没有公司通过,你想让它成为任何公司吗?

String hql = "Select id from UserData";
if(company != null) {
     String hql += " where userId = " + company;
 }

传递Null值本身并不一定是个问题。您应该以适当的方式处理此代码 - 但从您的描述中我无法推断出正确的解决方案是什么。如果您希望不允许 null 值,则可以为其指定@NotNull注释,以便在发生这种情况时抛出错误。

 public String getCurriculumListByCompany(@NotNull String company, String isCorrect){

或者,或者,在方法中将错误作为保护语句抛出:

 public String getCurriculumListByCompany(String company, String isCorrect){
      if(company == null){
           throw new RuntimeException("Company should not be null!");
       }
       ..
 }