自定义移动实现

Custom move implementation

创建自定义移动时,需要实现方法“getPlanningEntities”、“getPlanningValues”。在这些方法中,需要将实体和值添加到列表中并返回。

在我的自定义移动中,我正在更改属于不同规划实体的多个规划实体实例 类。

打开FULL_ASSERT一切正常没有错误。

我只是想知道“getPlanningEntities”返回的规划实体的顺序是否与“getPlanningValues”返回的值的顺序相同(我现在就是这样做的,但我想知道“getPlanningEntities”和“getPlanningValues”是如何运作的。我知道它们用于entityTabu和valueTabu。

还有什么时候调用“equals”和“hashCode”方法我正在打印文本只是为了看看它们何时被调用但它没有出现?

Move.equals()hashCode() 仅用于 moveTabu(这不是很好,我几乎从不使用它)。

getPlanningEntities()getPlanningValues() 的 return 值的顺序无关紧要,但在大多数情况下它们 return 不同类型的元素(链式除外)个案)。例如,在 cloudBalancing 中,getPlanningEntities() return 是进程的集合,getPlanningValues() return 是计算机的集合。在更改移动中,这两个集合都是单例。

请参阅 CloudComputerChangeMoveCloudProcessSwapMove 以获取灵感。