首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实体的变量是来自变量范围的克隆吗?

实体的变量是来自变量范围的克隆吗?
EN

Stack Overflow用户
提问于 2018-09-28 10:24:34
回答 2查看 62关注 0票数 0
代码语言:javascript
复制
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

EN

回答 2

Stack Overflow用户

发布于 2018-09-28 11:08:14

查看PlanningVariable的文档,我读到:

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

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

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

代码语言:javascript
复制
class Lecture {
  Teacher t1 = new Teacher()
  Teacher t2 = new Teacher()
  Teacher t3 = new Teacher()

  private Teacher teacher 
  @PlanningVariable(valueRangeProviderRefs = ["teacherRange"])
  Teacher getTeacher(){
      teacher
  } 
  void setTeacher(Teacher teacher){
    this.teacher=teacher
  }

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

Stack Overflow用户

发布于 2018-09-28 13:29:42

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52553322

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档