1

有以下类:

@Entity
public class MPolicy extends MAbstractEntity {

    private MPolicyCondition condition;

    private List<MPolicyAction> actions;

    ...

}

@Entity
public abstract class MPolicyCondition extends MAbstractEntity {

}

@Entity
public abstract class MPolicyAction extends MAbstractEntity {

    @Column(unique = true)
    protected String name;

    public String getName() {
        return name;
    }
    public void setName(final String name) {
        this.name = name;
    }
}

为什么错误:

子类型 com.*.MPolicyCondition 不可实例化

出现?

如果我从 MPolicyCondition 中删除抽象关键字,一切正常!但是 MPolicyAction 类也是抽象的。为什么 MPolicyCondition 会影响 bug,但 MPolicyAction 不会?

4

2 回答 2

2

我发现 MPolicyCondition 的子类没有可序列化的成员。所以问题就解决了。但是编译器会更友好地解释错误!

于 2013-03-06T15:11:39.620 回答
1

因为你有一个 MPolicyAction 列表。

您的 List 实现(可能是 ArrayList)是可实例化的。

于 2013-03-06T14:38:17.897 回答