我有一个像这样的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
正确设置状态。有谁知道为什么我必须明确设置它?
答案 0 :(得分:2)
我猜这与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