2017-08-10 22 views
-2

他にもはHP Fortifyヌルデフレクト修正の代わりに 'null'を置き換えます。私のHQLクエリの1つにnullが渡されているので、nullを置き換えるために 'StringUtil.EMPTY'を使用することはできません。Javaで 'null'を置き換える方法

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

* 
* 
* 
* 

null値がコードの下に渡されています。

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

あなたはnull'なのでになる '何をしたいですか?その値を使用してDBから選択しています –

+0

最初に行うべき行は何ですか? 'getCurriculumListByCompany'メソッドは、最初のパラメータとして' null'を指定して呼び出すと何も返しませんか? – Aaron

+1

そして、なぜUserIDは会社ですか? – 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!"); 
     } 
     .. 
} 
関連する問題