Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jaxb以不同的方式对java.lang.Long和java.math.BigDecimal进行解组_Java_Jaxb_Bigdecimal_Unmarshalling_Xml Nil - Fatal编程技术网

jaxb以不同的方式对java.lang.Long和java.math.BigDecimal进行解组

jaxb以不同的方式对java.lang.Long和java.math.BigDecimal进行解组,java,jaxb,bigdecimal,unmarshalling,xml-nil,Java,Jaxb,Bigdecimal,Unmarshalling,Xml Nil,我比较的是 private Long longVar private boolean isLongSetterCalled; private BigDecimal bigDecVar private boolean isBigDecimalSetterCalled; @XmlElement(nillable = true) public Long getLongVar() { return this.longVar; } public void setLongVar(final Long

我比较的是

private Long longVar
private boolean isLongSetterCalled;

private BigDecimal bigDecVar
private boolean isBigDecimalSetterCalled;

@XmlElement(nillable = true)
public Long getLongVar() {
  return this.longVar;
}
public void setLongVar(final Long longVar) {
  this.longVar = longVar;
  this.longSetterCalled = true;
}

@XmlElement(nillable = true)
public BigDecimal getBigDecVar() {
  return this.bigDecVar;
}
public void setBigDecVar(final BigDecimal bigDecVar) {
  this.bigDecVar = bigDecVar;
  this.bigDecimalSetterCalled = true;
}
鉴于这些投入:

1. empty tag
<longVar></longVar>
<bigDecVar></bigDecVar>

2. invalid input
<longVar>looooong</longVar>
<bigDecVar>biiiiiig</bigDecVar>
1。空标签
2.无效输入
卢昂
BiiIIig
我在观察二传手是否被召唤。 在输入2上。无效值-未调用设置程序。 在输入1上。空标记-不调用longSetter,调用bigDecimalSetter。为什么?

当然还有输入

3. nil
<longVar xsi:nil="true"></longVar>
<bigDecVar xsi:nil="true"></bigDecVar>
3。无
两个setter都被调用,这正是我所需要的

因此,问题是:当调用bigDecimalSetter时,我无法判断原因是
xsi:nil=“true”
,还是标记的值无效(不是BigDecimal)。这有什么办法吗