2017-08-10 99 views
-2

是否有任何其他方式可以替換'null'爲HP Fortify null參考修復程序。 null傳遞給我的一個HQL查詢,所以我不能使用'StringUtil.EMPTY'來替換null。如何在Java中替換'null'

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

* 
* 
* 
* 

空值傳遞給下面的代碼。

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

你想什麼'null'成爲?您正在使用它的值從數據庫中選擇 –

+0

第一行應該做什麼? getCurriculumListByCompany方法在用'null'作爲第一個參數調用時返回什麼? – Aaron

+1

爲什麼用戶ID是公司? – EJP

回答

1

這取決於當值'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!"); 
     } 
     .. 
}