2013-06-18 3 views
-1

У меня есть класс JAXB следующим образом:Как сделать пустую проверку поля JAXB, аннотированную с помощью @XmlElement?

public class Sub implements Serializable 
{ 
    @XmlElement(name = "A") 
    protected double a; 
    @XmlElement(name = "B") 
    protected double b; 
<getter, setter> 

Суб класс является частью другого класса:

public class Sup implements Serializable{ 

    @XmlElement(name = "Sub")  
    private Sub sub; 

Теперь я хочу сделать бланш для A и B.

если я пишу:

(SupObj.getSub != null){ 
//BLOCK1 
    if(SupObj.getSub().getA() != Double.NaN){ 
    //BLOCK2 
    } 
} 

и ввод как:

<Sup> 
    <Sub> 
    <A></A> 
    <B>1.2</B> 
    <Sub> 
</Sup> 

управление не входит внутрь EAST BLOCK1 или BLOCK2.

Пожалуйста, помогите мне выполнить черный чек.

+0

Где вы пишете эти два блока? – Augusto

+0

в клиентском коде для проверки ввода, переданного через SOAP UI –

+0

оператор! = Не применим для Double.NaN, потому что NaN не равен самому себе в Java. –

ответ

0
<A></A> 

Это, к сожалению, означает, что вы передаете пустую строку, не a null.

link

+0

Спасибо BMT. Я пробовал следующее: @XmlElement (name = "A", nillable = true) protected double a; и использовать его как: (SupObj.getSub! = null) { // BLOCK1 if (новый Double (SupObj.getSub(). getA()). toString(). equals ("")) { // BLOCK2 } }, но все же его не будет BLOCK2. Дайте мне знать, если я что-то упустил. –

+0

double - это примитивный тип, поэтому проверьте с if (SupObj.getSub(). GetA() == 0)), а также проверьте его значение при отладке. – iMBMT

0

Изменение a типа от double к Double

@XmlElement(name = "A") 
protected Double a; 

и проверить, если a не является нулевым

if (SupObj.getSub() != null && SupObj.getSub().getA() != null) { 
    ... 
+0

As OP упоминание это тоже не входить блок1 !! – iMBMT

+0

1. тип, который я определил, как вы предложили. @ XmlElement (name = "A") protected double a; 2.! = Null check дает ошибку компилятора с двойным. –

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