Grails 为什么Groovy对象初始值设定项无法设置属性?
我有这样一个Groovy类:Grails 为什么Groovy对象初始值设定项无法设置属性?,grails,groovy,grails-2.0,Grails,Groovy,Grails 2.0,我有这样一个Groovy类: class Person { String firstName String lastName Status status = StatusEnum.ACTIVE } 我正在用一个对象初始值设定项创建它的一个实例: def person = new Person( firstName: "Bob", lastName: "Yelo", status: StatusEnum.INACTIVE) 但是,这不会修改此人的状态,并且仍保
class Person {
String firstName
String lastName
Status status = StatusEnum.ACTIVE
}
我正在用一个对象初始值设定项创建它的一个实例:
def person = new Person(
firstName: "Bob", lastName: "Yelo", status: StatusEnum.INACTIVE)
但是,这不会修改此人的状态,并且仍保持为活动状态。我必须明确声明:
person.status = StatusEnum.INACTIVE
它正确地设置了状态。有人知道我为什么要显式设置它吗?我猜这与字段的类型是
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