gpt4 book ai didi

java - OptaPlanner 解决方案继承泛型会导致错误

转载 作者:太空宇宙 更新时间:2023-11-04 09:41:27 24 4
gpt4 key购买 nike

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

这会阻塞 optaplanner,它会输出如下错误:

解决方案属性(列表)未按预期克隆。 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,是否有更新的版本可以更好地支持此功能?

最佳答案

在该字段上添加 @DeepPlanningClone 注释。

此外,从 implements Solution 迁移到 @PlanningSolution,请参阅 optaplanner.org 上的升级方法

关于java - OptaPlanner 解决方案继承泛型会导致错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55939361/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com