我有以下问题:
我有两个生成的类只有1个不同。命名空间中的版本号(http://www.sample.com/soap/xsd/
2 /ia
)。
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "sampleType", namespace = "http://www.sample.com/soap/xsd/2/ia", propOrder = {
"decision"})
public class SampleType {
protected boolean isChecked;
//getter & setter
}
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "sampleType", namespace = "http://www.sample.com/soap/xsd/3/ia", propOrder = {
"decision"})
public class SampleType {
protected boolean isChecked;
//getter & setter
}
项目结构:
com.sample.myapp
|
|_ v2
| |_ SampleType.class
|
|_ v3
|_ SampleType.class
com.sample.myOtherApp
|
|_ FlagChecker.class
来电者课程:
@Service("com.sample.myOtherApp.FlagChecker")
public class FlagChecker {
public Boolean isChecked(SampleType sample){
return sample.isChecked();
}
}
我尝试了什么:
如果我的Sample.class
是POJO,我只需制作一个Interface
并在我的isChecked()
- 方法的签名中使用它。
这是不可能的,因为Sample.class
是从xsd生成的,或者我不知道如何添加接口。我使用JAXB生成java-classes。手动添加是没有选择的。
我试图使用泛型,但感觉就像我走了。
问题: 是否有可能在jaxb-class-generation-process中注入一个接口,或者是否可以通过泛型实现我想要的东西,还是有其他直接的解决方案?
修改
@Erwin Boldwit提到的指向这个answer的解决方案会很棒但是我从第三方获得xsd和改变xsd一般是个坏主意不是吗? 没有必要改变xsd。 xjb在第二个文件中。之前我拒绝了链接的答案,因为我认为它需要更改基本文件。