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 はバグに影響するのに、MPolicyAction は影響しないのはなぜですか?

4

2 に答える 2

2

シリアライズ可能なメンバーを持たない MPolicyCondition のサブクラスを見つけました。それで問題は解決しました。しかし、コンパイラはエラーの説明でより友好的になるでしょう!

于 2013-03-06T15:11:39.620 に答える
1

MPolicyAction のリストがあるためです。

また、List の実装 (おそらく ArrayList) はインスタンス化可能です。

于 2013-03-06T14:38:17.897 に答える