Groovy: Introspect Class Methods Tuesday, April 23, 2013

From time to time I need this and can never find it on the web.

def d = new Date()
d.class.methods.each{println it}
d.class.methods.name
Output:

public boolean java.util.Date.equals(java.lang.Object)
public java.lang.String java.util.Date.toString()
public int java.util.Date.hashCode()
public java.lang.Object java.util.Date.clone()
...

[equals, toString, hashCode, clone, compareTo, compareTo, parse, after, before, getDate, getHours, getMinutes, getMonth, getSeconds, getTime, getYear, setTime, setMinutes, setHours, setSeconds, UTC, getDay, setDate, setMonth, setYear, toGMTString, getTimezoneOffset, toLocaleString, wait, wait, wait, getClass, notify, notifyAll]

Also, I found this, which has a more Groovy output:
def dumpOut( clz ) {
  clz.metaClass.methods.each { method ->
    println "${method.returnType.name} ${method.name}( ${method.parameterTypes*.name.join( ', ' )} )"
  }
}

dumpOut String.class 

http://stackoverflow.com/questions

Output:

boolean equals( java.lang.Object )
java.lang.Class getClass( )
int hashCode( )
void notify( )
void notifyAll( )
java.lang.String toString( )
void wait( )
void wait( long )
...

0 comments: