Optaplanner解决方案继承与泛型导致错误

时间:2019-05-01 16:24:35

标签: java generics inheritance optaplanner

我有一个抽象的通用“ Foo”解决方案类,我的特定实现继承了该类。此类是通用的,并且允许实现类定义其特定的PlanningEntity,该实体扩展了“ Bar”

这使optaplanner阻塞,它发出如下错误:

未按预期克隆solutionProperty(列表)。 FieldAccessingSolutionCloner无法识别该属性的字段,可能是因为其字段名称不同。

我尝试用特定的实现类替换“ EntityType”,并且看起来一切正常。但是,我正在尝试提取通用功能以减少维护,这使我无法提取所有通用性。

我还尝试梳理Optaplanner文档。我找不到这样的例子。

@PlanningSolution
public abstract class Foo <EntityType extends Bar> implements Solution<HardMediumSoftScore>
{
    protected HardMediumSoftScore score;
    protected ArrayList<EntityType> list = new ArrayList<>();

    @PlanningEntityCollectionProperty
    public ArrayList<EntityType> getList()
    {
        return this.list;
    }

    @Override
    public HardMediumSoftScore getScore()
    {
        return this.score;
    }

    public void setScore(HardMediumSoftScore score)
    {
        this.score = score;
    }
}

我希望能够继承而不会optaplanner抛出错误。

是否设置了optaplanner来处理泛型/继承?我使用的是6.5,是否有支持该功能的更新版本?

1 个答案:

答案 0 :(得分:0)

在该字段上添加connect/authorize注释。

另外,从@DeepPlanningClone迁移到implements Solution,请参阅optaplanner.org上的升级食谱