How to get all property names of a Groovy class?

dynamic, groovy, java

Solution

I am using groovy compiler 2.4 I get a `java.util.LinkedHashMap` containing all the properties and their values returned by calling `getProperties()` on a groovy object.

class PropertyDemoClass {
    int firstProperty = 1;
    String secondProperty = "rhubarb"
    String thirdProperty = "custard"
}

PropertyDemoClass demoClass = new PropertyDemoClass()
println demoClass.getProperties().toString()

which results in:

[firstProperty:1, secondProperty:rhubarb, class:class PropertyDemoClass, thirdProperty:custard]

Problem

The title ask it all : How to get all property names of a Groovy class? Is it even possible? I thought I could use collection syntaxes with classes too be it don't seem to work.

Original source

Related problems