我有 4 个类:A 扩展 B,C 扩展 D。以下代码:
class B
{
Set<D> mySet;
public Set<D> getMySet()
{....}
public void setMySet(Set<D> setset)
{....}
}
class A extends B
{
Set<C> mySet;
public Set<C> getMySet()
{....}
public void setMySet(Set<C> setset)
{....}
}
类 A 无法编译,因为 get/set 与父类具有相同的擦除。如果我删除 A 中的集合类型,它编译得很好,但是我有休眠错误,因为该类已映射。没有关于继承的信息,A 的映射很简单。我能否以某种方式不更改映射 hbm.xml 并在不更改 B 类的情况下使事情正常工作(我不能,因为它是提供的 lib)?在这种情况下,不改变 B 类的最佳解决方案是什么?