我有一個抽象的通用“Foo”解決方案類,我的特定實現繼承了它。此類是通用的,并允許實現類定義其特定的 PlanningEntity,它擴展了“Bar”這阻塞了 optaplanner,它會吐出如下錯誤:未按預期克隆解決方案屬性(列表)。FieldAccessingSolutionCloner 無法識別該屬性的字段,可能是因為其字段名稱不同。我嘗試用特定的實現類替換“EntityType”,并且事情似乎有效。但是,我正在嘗試提取通用功能以減少維護,這使我無法提取所有共性。我也嘗試過梳理 OptaPlanner 文檔。我找不到這樣的例子。@PlanningSolutionpublic 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 回答

楊魅力
TA貢獻1811條經驗 獲得超6個贊
在該字段上添加@DeepPlanningClone
注釋。
此外,從 遷移implements Solution
到@PlanningSolution
,請參閱optaplanner.org 上的升級配方。
添加回答
舉報
0/150
提交
取消