1

我有一个像这样的 Groovy 类:

class Person {

    String firstName
    String lastName
    Status status = StatusEnum.ACTIVE
}

我正在使用对象初始化器创建它的一个实例:

def person = new Person(
    firstName: "Bob", lastName: "Yelo", status: StatusEnum.INACTIVE)

但是,这不会修改此人的状态,它仍然是ACTIVE. 我必须明确声明它:

person.status = StatusEnum.INACTIVE

哪个正确设置了状态。有谁知道为什么我必须明确设置它?

4

1 回答 1

3

我猜这与字段的类型有关,Status而不是StatusEnum

像这样声明它是有效的,因为你建议它应该是 groovy 控制台:

enum StatusEnum {
    ACTIVE, INACTIVE
}

class Person {
    String firstName
    String lastName
    StatusEnum status = StatusEnum.ACTIVE
}

def person = new Person(firstName: "Bob", lastName: "Yelo", status: StatusEnum.INACTIVE)

assert StatusEnum.INACTIVE == person.status
于 2012-08-10T04:17:40.620 回答