/ / Groovy列挙-呼び出しチェーン-groovy、列挙、チェーン

Groovy列挙型 - コールチェーン - グルーヴィー、列挙型、チェーン

チェーン呼び出しがenumが機能します。 「name」というenumインスタンスがあり、括弧を忘れたときにname()の代わりに参照されていました。列挙型は呼び出しの連鎖を許可する必要がありますか? Groovy 2.4.10の使用-以下の最後の3つの呼び出しを参照してください。

Groovy Shell (2.4.10, JVM: 1.8.0_121)
Type ":help" or ":h" for help.

groovy:000> public enum Compass { north, south }
===> true
groovy:000> Compass.north
===> north
groovy:000> Compass.north.name
ERROR groovy.lang.MissingPropertyException:
No such property: name for class: Compass
groovy:000> Compass.north.name()
===> north
groovy:000> public enum Compass { north, south, name }
===> true
groovy:000> Compass.north.name()
===> north
groovy:000> Compass.north.name
===> name
groovy:000> Compass.north.south
===> south
groovy:000> Compass.north.south.north
===> north

回答:

回答№1は1

それは正しいです。 JavaのEnumは、構文上の砂糖です(さらに、 values() そして name())その同じクラスの静的フィールド上で、したがって、enumフィールドを呼び出すと、そのクラスへの静的参照もあり、他のクラスにもアクセスできます」フィールド:

class Compass {
static NORTH = new Compass()
static SOUTH = new Compass()
}


assert Compass.NORTH.SOUTH.NORTH == Compass.NORTH

def west = new Compass()
assert west.SOUTH == Compass.SOUTH