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 に答える