2014-01-21 1 views
0

Я хочу контактировать различные строки в текстовом поле Field. Таким образом, чтобы предотвратить NullPointerException, я должен проверить, является ли строка для конкатенации нулевой.Как проверить значение null перед использованием предопределенных методов в textField

$F{ADET2}.concat($F{ADET4}).concat($F{ADET5}).concat($F{ADET6}).concat($F{ADET7}).concat($F{ADET8}) 

Так как писать это значение TextField:

if ($F{ADET2}! = null) 

    if ($F{ADET4}! = null) 
     $F{ADET2}.concat($F{ADET4}) 
    if ($F{ADET5}! = null) 
     $F{ADET2}.concat($F{ADET4}).concat($F{ADET4}) 
    .... 
+1

Я не знаком с этой статьей Jasper-Reports, но вы не можете реализовать какой-либо цикл? –

ответ

1

Вы можете использовать Joiner класс от Google Guava library.

В вашем случае выражение будет:

<textFieldExpression><![CDATA[Joiner.on("").skipNulls().join(Arrays.asList($F{ADET2}, $F{ADET4}, $F{ADET5}, $F{ADET6}, $F{ADET7}, $F{ADET8}))]]></textFieldExpression> 

Примечание:

  • Не забудьте добавить импорт и добавить гуавы к классам:
<import value="com.google.common.base.Joiner"/> 
  • Я установил язык отчета в качестве Java

  • Вы также можете использовать ternary operator для решения этой задачи.

+0

Это также работает с использованием тернарного оператора, как вы сказали в предыдущем комментарии: $ F {ADET2}! = Null? ($ F {ADET2} .concat ($ F {ADET3}! = Null? $ F {ADET3}: "") .concat ($ F {ADET4}! = Null? $ F {ADET4}: ""). Concat ($ F {ADET5}! = Null? $ F {ADET5}: ""). Concat ($ F {ADET6}! = Null? $ F {ADET6}: "") .concat ($ F {ADET7}! = null $ F {ADET7}: "") .concat ($ F {ADET8}! = null? $ F {ADET8}: "")): "" – AmiraGL

+0

Да, но это решение лучше, ИМХО –

Смежные вопросы