创建自定义移动时,需要实现方法“getPlanningEntities”,“getPlanningValues”。在这些方法中,需要将实体和值添加到列表中并返回。
在我的自定义移动中,我正在更改属于不同规划实体类的多个规划实体实例。
当打开FULL_ASSERT时,一切正常,没有错误。
我只是想知道“getPlanningEntities”返回的计划实体的顺序是否与“getPlanningValues”返回的值的顺序相同(这是我现在这样做但我想要知道“getPlanningEntities”和“getPlanningValues”是如何运作的。我知道它们用于entityTabu和valueTabu。
当调用“equals”和“hashCode”方法时,我打印文本只是为了看它们何时被调用但是没有出现?
答案 0 :(得分:1)
Move.equals()
和hashCode()
仅用于moveTabu
(这不是很好,我几乎不用它)。
getPlanningEntities()
和getPlanningValues()
的返回值的顺序并不重要,但在大多数情况下它们会返回不同类型的元素(链式情况除外)。例如,在cloudBalancing中,getPlanningEntities()
返回一组进程,getPlanningValues()
返回一组计算机。在更改移动中,这两个集合都是单例。
请参阅CloudComputerChangeMove
和CloudProcessSwapMove
获取灵感。