不同包中“相同”类的通用访问

时间:2016-11-17 08:23:20

标签: java generics spring-boot jaxb

我有以下问题:

我有两个生成的类只有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在第二个文件中。之前我拒绝了链接的答案,因为我认为它需要更改基本文件。

0 个答案:

没有答案