实体的变量是变量范围内的克隆吗?

时间:2018-09-28 10:24:35

标签: groovy optaplanner

class Lecture {
    Teacher t1 = new Teacher()
    Teacher t2 = new Teacher()
    Teacher t3 = new Teacher()


    @PlanningVariable(valueRangeProviderRefs = ["teacherRange"])
    Teacher teacher 


    @ValueRangeProvider(id = "teacherRange")
    public List<Teacher> getTeacherRange() {
        [t1, t2, t3]
    }

}

这段代码是用groovy编写的。

当我调试时,我发现老师的对象具有与t1,t2,t3不同的哈希码,我认为老师是克隆对象, 是吗?

那么,如果要更新分配给老师的老师,该怎么办?因为我无法在其他任何地方更新t1,t2,t3

2 个答案:

答案 0 :(得分:0)

查看PlanningVariable的文档,我读过:

  

它是在Java Bean属性的getter上指定的   PlanningEntity类。

https://docs.jboss.org/drools/release/6.1.0.Final/optaplanner-javadoc/org/optaplanner/core/api/domain/variable/PlanningVariable.html

因此,您必须注释方法而不是变量。您的代码必须类似于:

string[grepl("<TEXT>(.*?)<TEXT>", string, ignore.case = F)]
regmatches(string,gregexpr("<TEXT>", string, ignore.case = F))

答案 1 :(得分:0)

我不确定当您说要“更新分配给老师的老师”时指的是什么,但是如果要更改变量或问题事实的属性之一,请看看ProblemFactChange