我有一个抽象的通用“ 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,是否有支持该功能的更新版本?
答案 0 :(得分:0)
在该字段上添加connect/authorize
注释。
另外,从@DeepPlanningClone
迁移到implements Solution
,请参阅optaplanner.org上的升级食谱。