我有四门课:
public class A { }
public class B extends A { }
public class C extends B { }
public class D extends B { }
从我在推土机文档中读到的关于继承的内容,它必须非常简单,我需要将超类相互映射,以及子类。这是它在 xml 中的外观:
<mapping>
<class-a>foo.A</class-a>
<class-b>foo.bar.A</class-b>
</mapping>
<mapping>
<class-a>foo.B</class-a>
<class-b>foo.bar.B</class-b>
</mapping>
<mapping>
<class-a>foo.C</class-a>
<class-b>foo.bar.C</class-b>
</mapping>
<mapping>
<class-a>foo.D</class-a>
<class-b>foo.bar.D</class-b>
</mapping>
所有这些类都是相同的,我的意思是 D 和 D 具有相同的属性,C 和 C 等等。
问题: 在我传递给推土机的对象中,我有一个 B 类型的属性,它可以由 C 或 D(多态性)初始化。当推土机返回新的映射对象时,它总是返回 B 的属性类型给我,而不是 C 或 D。如何解决这个问题?