3
我们基于两个XSD文件生成Java类。这些类落在与XSD文件(a和b)相关的包中。我们想要使用生成的类的方法是相同的。但是他们没有实现一个接口或一个超类。我们无法控制XSD,它提供了。如何避免使用不同包中生成的类生成重复代码
例子:
package code.generated.a;
class X {
void do() {...}
}
package code.generated.b;
class X {
void do() {...}
}
我们现在想在我们自己编写的代码使用这些类,但不希望复制它。
所以截至目前,我们通过复制代码来使用接口:
package code.ours.a
class Consumer {
void use(code.generated.a.X x) {...}
}
package code.ours.b
class Consumer {
void use(code.generated.b.X x) {...}
}
什么是解决重复代码的推荐方法?想到Go的隐式接口,但我们正在处理Java。用泛型有没有办法解决这个问题?
试图指定的包名的代码生成器,是两个XSD同... –