2012-07-23 9 views
7

をヌル値を処理します。ここでは名前をnullにすることができ、name.toLowerCase()を呼び出すときにnullpointer例外が発生します。このシナリオでnull値を処理する方法は?私はヌル以外の値に対してのみtoLowercase()を呼び出す必要があります。Iはスプリング式言語を使用して、次のコードを有するばね式言語で

+1

'toLowerCaseメソッド()。( 'ハリ')'は常に 'false'を – OrangeDog

答えて

19
"#emp.name != null ? #emp.name.toLowerCase().contains('hari') : null" 

または

"#emp.name != null ? #emp.name.toLowerCase().contains('hari') : false" 

に。

実は、この短い形式はあまりにも動作します...

"#emp.name != null ? toLowerCase().contains('hari') : null" 

ところで、あなたの元の質問に...

name.toLowerCase().contains('Hari') 

は(Hは大文字で)trueを返すことはありません。

または、エルヴィスはあなたの友達です...

Expression expression = new SpelExpressionParser().parseExpression("#emp.name?:'no name found'"); 
value = expression.getValue(context, String.class).toLowerCase(); 
+0

こんにちは、あなたの答えに感謝ですが含まれています。私の場合、従業員はオブジェクトのコレクションです。だから私はコレクションから名前を取得する必要があります。私は "#emp?[name!= null?toLowerCase()。contains( 'hari'):null]」を試みましたが、動作していませんし、toLowercaseメソッドがEmployeeDtoに存在しないというメッセージが表示されていますこの問題を解決するために私を助けてください。多くのおかげです。 – user1293071

+0

コレクション選択を使用しようとしている理由がわかりません。あなたのコレクションがマップの場合、これはうまくいきます... "#emp ['name']!= null?#emp ['name']。toLowerCase()。contains( 'hari'):false" –

+0

あなたのサポートに感謝し、解決策を見つけるのを助けてください – user1293071

0

このBeanをクラスにオートワイヤできますか?

ような何か:名前が欠落しているとき、あなたが戻って欲しいものに応じて、

public class YourClass{ 
    @Autowire 
    private Employee emp 

    public boolean func(){ 
     if (emp.getName() != null){ 
      return emp.getName().toLowerCase().contains('Hari'); 
     }else{ 
      return false; 
     } 
    } 
} 
関連する問題