我有一个模型,它由一个带有一个注释属性的接口和一个不重新注释该属性的实现的具体实现器组成。为什么这不能正确解组(使用 MOXy 2.5.0)?我得到了一个正确构造的对象,但该属性从未绑定到 XML:
<!-- XML -->
<InterfaceImpl id="5150" />
/**
* Annotated interface
*/
@XmlRootElement(name="IInterface")
public interface IInterface
{
@XmlAttribute(name="id")
public void setId(int id);
}
/**
* Concrete implementor
*/
@XmlRootElement(name="InterfaceImpl")
public class InterfaceImpl implements IInterface
{
private int m_id = -1;
@Override
public void setId(int id)
{
m_id = id;
}
}
/**
* Unmarshal code
*/
File f = new File("src\\resources\\Interface.xml");
JAXBContext context = JAXBContext.newInstance(MY_PATH);
Unmarshaller u = context.createUnmarshaller();
InterfaceImpl i = (InterfaceImpl)u.unmarshal(f);
如果我将 IInterface 更改为抽象类,它可以正常工作 - 抽象类和接口不应该以相同的方式处理吗?这是预期的行为,还是已知问题?
谢谢!