Groovy JDK

java.lang
Class Object

Method Summary
void addShutdownHook(Closure closure)
Allows the usage of addShutdownHook without getting the runtime first.
boolean any(Closure closure)
Iterates over the contents of an object or collection, and checks whether a predicate is valid for at least one element.
boolean any()
Iterates over the elements of a collection, and checks whether at least one element is true according to the Groovy Truth.
boolean asBoolean()
Coerce an object instance to a boolean value.
Object asType(Class type)
Converts a given object to a type.
List collect(Closure transform)
Iterates through this aggregate Object transforming each item into a new value using the transform closure, returning a list of transformed values.
Collection collect()
Iterates through this aggregate Object transforming each item into a new value using Closure.IDENTITY as a transformer, basically returning a list of items copied from the original object.
Collection collect(Collection collector, Closure transform)
Iterates through this aggregate Object transforming each item into a new value using the transform closure and adding it to the supplied collector.
String dump()
Generates a detailed dump string of an object showing its class, hashCode and fields.
Object each(Closure closure)
Iterates through an aggregate type or data structure, passing each item to the given closure.
Object eachWithIndex(Closure closure)
Iterates through an aggregate type or data structure, passing each item and the item's index (a counter starting at zero) to the given closure.
boolean every(Closure closure)
Used to determine if the given predicate closure is valid (i.e.
boolean every()
Iterates over every element of a collection, and checks whether all elements are true according to the Groovy Truth.
Object find(Closure closure)
Finds the first value matching the closure condition
Object find()
Finds the first item matching the IDENTITY Closure (i.e.
Collection findAll(Closure closure)
Finds all items matching the closure condition.
Collection findAll()
Finds all items matching the IDENTITY Closure (i.e.
int findIndexOf(Closure closure)
Iterates over the elements of an iterable collection of items and returns the index of the first item that matches the condition specified in the closure.
int findIndexOf(int startIndex, Closure closure)
Iterates over the elements of an iterable collection of items, starting from a specified startIndex, and returns the index of the first item that matches the condition specified in the closure.
List findIndexValues(Closure closure)
Iterates over the elements of an iterable collection of items and returns the index values of the items that match the condition specified in the closure.
List findIndexValues(Number startIndex, Closure closure)
Iterates over the elements of an iterable collection of items, starting from a specified startIndex, and returns the index values of the items that match the condition specified in the closure.
int findLastIndexOf(Closure closure)
Iterates over the elements of an iterable collection of items and returns the index of the last item that matches the condition specified in the closure.
int findLastIndexOf(int startIndex, Closure closure)
Iterates over the elements of an iterable collection of items, starting from a specified startIndex, and returns the index of the last item that matches the condition specified in the closure.
Object findResult(Object defaultResult, Closure closure)
Treats the object as iterable, iterating through the values it represents and returns the first non-null result obtained from calling the closure, otherwise returns the defaultResult.
Object findResult(Closure closure)
Treats the object as iterable, iterating through the values it represents and returns the first non-null result obtained from calling the closure, otherwise returns null.
Object getAt(String property)
Allows the subscript operator to be used to lookup dynamic property values.
MetaClass getMetaClass()
Obtains a MetaClass for an object either from the registry or in the case of a GroovyObject from the object itself.
List getMetaPropertyValues()
Retrieves the list of MetaProperty objects for 'self' and wraps it in a list of PropertyValue objects that additionally provide the value for each property of 'self'.
Map getProperties()
Convenience method that calls Object#getMetaPropertyValues(self) and provides the data in form of simple key/value pairs, i.e.
Collection grep(Object filter)
Iterates over the collection of items which this Object represents and returns each item that matches the given filter - calling the Object#isCase method used by switch statements.
Collection grep()
Iterates over the collection of items which this Object represents and returns each item that matches using the IDENTITY Closure as a filter - effectively returning all elements which satisfy Groovy truth.
MetaProperty hasProperty(String name)

Returns true of the implementing MetaClass has a property of the given name

Note that this method will only return true for realised properties and does not take into account implementation of getProperty or propertyMissing

Object identity(Closure closure)
Allows the closure to be called for the object reference self.
Object inject(Closure closure)
Iterates through the given Object, passing in the first value to the closure along with the first item.
Object inject(Object initialValue, Closure closure)
Iterates through the given Object, passing in the initial value to the closure along with the first item.
String inspect()
Inspects returns the String that matches what would be typed into a terminal to create this object.
Object invokeMethod(String method, Object arguments)
Provide a dynamic method invocation method which can be overloaded in classes to implement dynamic proxies easily.
boolean is(Object other)
Identity check.
boolean isCase(Object switchValue)
Method for overloading the behavior of the 'case' method in switch statements.
Iterator iterator()
Attempts to create an Iterator for the given object by first converting it to a Collection.
MetaClass metaClass(Closure closure)
Sets/updates the metaclass for a given object to a closure.
void print(Object value)
Print a value formatted Groovy style to self if it is a Writer, otherwise to the standard output stream.
void print(PrintWriter out)
Print to a console in interactive format.
void printf(String format, Object[] values)
Printf to a console (Only works with JDK1.5 or later).
void printf(String format, Object arg)
Prints a formatted string using the specified format string and arguments.
void println()
Print a linebreak to the standard output stream.
void println(Object value)
Print a value formatted Groovy style (followed by a newline) to self if it is a Writer, otherwise to the standard output stream.
void println(PrintWriter out)
Print to a console in interactive format.
void putAt(String property, Object newValue)
Allows the subscript operator to be used to set dynamically named property values.
List respondsTo(String name, Object[] argTypes)

Returns an object satisfying Groovy truth if the implementing MetaClass responds to a method with the given name and arguments types.

List respondsTo(String name)

Returns an object satisfying Groovy truth if the implementing MetaClass responds to a method with the given name regardless of the arguments.

void setMetaClass(MetaClass metaClass)
Set the metaclass for an object.
static void sleep(long milliseconds)
Sleep for so many milliseconds, even if interrupted.
static void sleep(long milliseconds, Closure onInterrupt)
Sleep for so many milliseconds, using a given closure for interrupt processing.
Collection split(Closure closure)
Splits all items into two lists based on the closure condition.
String sprintf(String format, Object[] values)
Sprintf to a string (Only works with JDK1.5 or later).
String sprintf(String format, Object arg)
Returns a formatted string using the specified format string and arguments.
String toString()
Create a String representation of this object.
Object use(Class categoryClass, Closure closure)
Scoped use method
Object use(List categoryClassList, Closure closure)
Scoped use method with list of categories.
Object use(Object[] array)
Allows you to use a list of categories, specifying the list as varargs.
Object with(Closure closure)
Allows the closure to be called for the object reference self.
 
Method Detail

addShutdownHook

public void addShutdownHook(Closure closure)
 
Allows the usage of addShutdownHook without getting the runtime first.
Parameters:
closure - the shutdown hook action.
Since:
1.5.0

any

public boolean any(Closure closure)
 
Iterates over the contents of an object or collection, and checks whether a predicate is valid for at least one element.
Parameters:
closure - the closure predicate used for matching.
Returns:
true if any iteration for the object matches the closure predicate
Since:
1.0

any

public boolean any()
 
Iterates over the elements of a collection, and checks whether at least one element is true according to the Groovy Truth. Equivalent to self.any({element -> element})
Returns:
true if any item in the collection matches the closure predicate
Since:
1.5.0

asBoolean

public boolean asBoolean()
 
Coerce an object instance to a boolean value. An object is coerced to true if it's not null, to false if it is null.
Returns:
the boolean value
Since:
1.7.0

asType

public Object asType(Class type)
 
Converts a given object to a type. This method is used through the "as" operator and is overloadable as any other operator.
Parameters:
type - the goal type.
Returns:
the resulting object
Since:
1.0

collect

public List collect(Closure transform)
 
Iterates through this aggregate Object transforming each item into a new value using the transform closure, returning a list of transformed values. Example:
def list = [1, 'a', 1.23, true ]
def types = list.collect { it.class }
assert types == [Integer, String, BigDecimal, Boolean]
Parameters:
transform - the closure used to transform each item of the aggregate object.
Returns:
a List of the transformed values
Since:
1.0

collect

public Collection collect()
 
Iterates through this aggregate Object transforming each item into a new value using Closure.IDENTITY as a transformer, basically returning a list of items copied from the original object.
assert [1,2,3] == [1,2,3].iterator().collect()
Returns:
a List of the transformed values
Since:
1.8.5
See:
Closure#IDENTITY.

collect

public Collection collect(Collection collector, Closure transform)
 
Iterates through this aggregate Object transforming each item into a new value using the transform closure and adding it to the supplied collector.
Parameters:
collector - the Collection to which the transformed values are added.
transform - the closure used to transform each item of the aggregate object.
Returns:
the collector with all transformed values added to it
Since:
1.0

dump

public String dump()
 
Generates a detailed dump string of an object showing its class, hashCode and fields.
Returns:
the dump representation
Since:
1.0

each

public Object each(Closure closure)
 
Iterates through an aggregate type or data structure, passing each item to the given closure. Custom types may utilize this method by simply providing an "iterator()" method. The items returned from the resulting iterator will be passed to the closure.
Parameters:
closure - the closure applied on each element found.
Returns:
the self Object
Since:
1.0

eachWithIndex

public Object eachWithIndex(Closure closure)
 
Iterates through an aggregate type or data structure, passing each item and the item's index (a counter starting at zero) to the given closure.
Parameters:
closure - a Closure to operate on each item.
Returns:
the self Object
Since:
1.0

every

public boolean every(Closure closure)
 
Used to determine if the given predicate closure is valid (i.e.&nsbp;returns true for all items in this data structure). A simple example for a list:
def list = [3,4,5]
def greaterThanTwo = list.every { it > 2 }
Parameters:
closure - the closure predicate used for matching.
Returns:
true if every iteration of the object matches the closure predicate
Since:
1.0

every

public boolean every()
 
Iterates over every element of a collection, and checks whether all elements are true according to the Groovy Truth. Equivalent to self.every({element -> element})
Returns:
true if every item in the collection matches the closure predicate
Since:
1.5.0

find

public Object find(Closure closure)
 
Finds the first value matching the closure condition
Parameters:
closure - a closure condition.
Returns:
the first Object found or null if none was found
Since:
1.0

find

public Object find()
 
Finds the first item matching the IDENTITY Closure (i.e. matching Groovy truth).

Example:

def items = [null, 0, 0.0, false, '', [], 42, 43]
assert items.find() == 42
Returns:
the first Object found or null if none was found
Since:
1.8.1
See:
Closure#IDENTITY.

findAll

public Collection findAll(Closure closure)
 
Finds all items matching the closure condition.
Parameters:
closure - a closure condition.
Returns:
a List of the values found
Since:
1.6.0

findAll

public Collection findAll()
 
Finds all items matching the IDENTITY Closure (i.e. matching Groovy truth).

Example:

def items = [1, 2, 0, false, true, '', 'foo', [], [4, 5], null]
assert items.findAll() == [1, 2, true, 'foo', [4, 5]]
Returns:
a List of the values found
Since:
1.8.1
See:
Closure#IDENTITY.

findIndexOf

public int findIndexOf(Closure closure)
 
Iterates over the elements of an iterable collection of items and returns the index of the first item that matches the condition specified in the closure.
Parameters:
closure - the filter to perform a match on the collection.
Returns:
an integer that is the index of the first matched object or -1 if no match was found
Since:
1.0

findIndexOf

public int findIndexOf(int startIndex, Closure closure)
 
Iterates over the elements of an iterable collection of items, starting from a specified startIndex, and returns the index of the first item that matches the condition specified in the closure.
Parameters:
startIndex - start matching from this index.
closure - the filter to perform a match on the collection.
Returns:
an integer that is the index of the first matched object or -1 if no match was found
Since:
1.5.0

findIndexValues

public List findIndexValues(Closure closure)
 
Iterates over the elements of an iterable collection of items and returns the index values of the items that match the condition specified in the closure.
Parameters:
closure - the filter to perform a match on the collection.
Returns:
a list of numbers corresponding to the index values of all matched objects
Since:
1.5.2

findIndexValues

public List findIndexValues(Number startIndex, Closure closure)
 
Iterates over the elements of an iterable collection of items, starting from a specified startIndex, and returns the index values of the items that match the condition specified in the closure.
Parameters:
startIndex - start matching from this index.
closure - the filter to perform a match on the collection.
Returns:
a list of numbers corresponding to the index values of all matched objects
Since:
1.5.2

findLastIndexOf

public int findLastIndexOf(Closure closure)
 
Iterates over the elements of an iterable collection of items and returns the index of the last item that matches the condition specified in the closure.
Parameters:
closure - the filter to perform a match on the collection.
Returns:
an integer that is the index of the last matched object or -1 if no match was found
Since:
1.5.2

findLastIndexOf

public int findLastIndexOf(int startIndex, Closure closure)
 
Iterates over the elements of an iterable collection of items, starting from a specified startIndex, and returns the index of the last item that matches the condition specified in the closure.
Parameters:
startIndex - start matching from this index.
closure - the filter to perform a match on the collection.
Returns:
an integer that is the index of the last matched object or -1 if no match was found
Since:
1.5.2

findResult

public Object findResult(Object defaultResult, Closure closure)
 
Treats the object as iterable, iterating through the values it represents and returns the first non-null result obtained from calling the closure, otherwise returns the defaultResult.
Parameters:
defaultResult - an Object that should be returned if all closure results are null.
closure - a closure that returns a non-null value when processing should stop.
Returns:
the first non-null result of the closure, otherwise the default value
Since:
1.7.5

findResult

public Object findResult(Closure closure)
 
Treats the object as iterable, iterating through the values it represents and returns the first non-null result obtained from calling the closure, otherwise returns null.
Parameters:
closure - a closure that returns a non-null value when processing should stop.
Returns:
the first non-null result of the closure
Since:
1.7.5

getAt

public Object getAt(String property)
 
Allows the subscript operator to be used to lookup dynamic property values. bean[somePropertyNameExpression]. The normal property notation of groovy is neater and more concise but only works with compile-time known property names.
Parameters:
property - the property name of interest.
Returns:
the property value
Since:
1.0

getMetaClass

public MetaClass getMetaClass()
 
Obtains a MetaClass for an object either from the registry or in the case of a GroovyObject from the object itself.
Returns:
The MetaClass
Since:
1.5.0

getMetaPropertyValues

public List getMetaPropertyValues()
 
Retrieves the list of MetaProperty objects for 'self' and wraps it in a list of PropertyValue objects that additionally provide the value for each property of 'self'.
Returns:
list of {@link groovy.lang.PropertyValue} objects
Since:
1.0
See:
Expando#getMetaPropertyValues.

getProperties

public Map getProperties()
 
Convenience method that calls Object#getMetaPropertyValues(self) and provides the data in form of simple key/value pairs, i.e.&nsbp;without type() information.
Returns:
meta properties as Map of key/value pairs
Since:
1.0

grep

public Collection grep(Object filter)
 
Iterates over the collection of items which this Object represents and returns each item that matches the given filter - calling the Object#isCase method used by switch statements. This method can be used with different kinds of filters like regular expressions, classes, ranges etc. Example:
def list = ['a', 'b', 'aa', 'bc', 3, 4.5]
assert list.grep( ~/a+/ )  == ['a', 'aa']
assert list.grep( ~/../ )  == ['aa', 'bc']
assert list.grep( Number ) == [ 3, 4.5 ]
assert list.grep{ it.toString().size() == 1 } == [ 'a', 'b', 3 ]
Parameters:
filter - the filter to perform on the object (using the Object#isCase method).
Returns:
a collection of objects which match the filter
Since:
1.5.6

grep

public Collection grep()
 
Iterates over the collection of items which this Object represents and returns each item that matches using the IDENTITY Closure as a filter - effectively returning all elements which satisfy Groovy truth.

Example:

def items = [1, 2, 0, false, true, '', 'foo', [], [4, 5], null]
assert items.grep() == [1, 2, true, 'foo', [4, 5]]
Returns:
a collection of objects which match the filter
Since:
1.8.1
See:
Closure#IDENTITY.

hasProperty

public MetaProperty hasProperty(String name)
 

Returns true of the implementing MetaClass has a property of the given name

Note that this method will only return true for realised properties and does not take into account implementation of getProperty or propertyMissing

Parameters:
name - The name of the property of interest.
Returns:
The found MetaProperty or null if it doesn't exist
Since:
1.6.1
See:
MetaObjectProtocol#hasProperty.

identity

public Object identity(Closure closure)
 
Allows the closure to be called for the object reference self. Synonym for 'with()'.
Parameters:
closure - the closure to call on the object.
Returns:
result of calling the closure
Since:
1.0

inject

public Object inject(Closure closure)
 
Iterates through the given Object, passing in the first value to the closure along with the first item. The result is passed back (injected) into the closure along with the second item. The new result is injected back into the closure along with the third item and so on until further iteration of the object is not possible. Also known as foldLeft in functional parlance.
Parameters:
closure - a closure.
Returns:
the result of the last closure call
Since:
1.8.7
See:
Collection#inject(Object, Closure).

inject

public Object inject(Object initialValue, Closure closure)
 
Iterates through the given Object, passing in the initial value to the closure along with the first item. The result is passed back (injected) into the closure along with the second item. The new result is injected back into the closure along with the third item and so on until further iteration of the object is not possible. Also known as foldLeft in functional parlance.
Parameters:
initialValue - some initial value.
closure - a closure.
Returns:
the result of the last closure call
Since:
1.5.0
See:
Collection#inject(Object, Closure).

inspect

public String inspect()
 
Inspects returns the String that matches what would be typed into a terminal to create this object.
Returns:
a String that matches what would be typed into a terminal to create this object. e.g. [1, 'hello'].inspect() -> [1, "hello"]
Since:
1.0

invokeMethod

public Object invokeMethod(String method, Object arguments)
 
Provide a dynamic method invocation method which can be overloaded in classes to implement dynamic proxies easily.
Parameters:
method - the name of the method to call.
arguments - the arguments to use.
Returns:
the result of the method call
Since:
1.0

is

public boolean is(Object other)
 
Identity check. Since == is overridden in Groovy with the meaning of equality we need some fallback to check for object identity. Invoke using the 'is' method, like so: def same = this.is(that)
Parameters:
other - an object to compare identity with.
Returns:
true if self and other are both references to the same instance, false otherwise
Since:
1.0

isCase

public boolean isCase(Object switchValue)
 
Method for overloading the behavior of the 'case' method in switch statements. The default implementation handles arrays types but otherwise simply delegates to Object#equals, but this may be overridden for other types. In this example:
 switch( a ) {
  case b: //some code
}
"some code" is called when b.isCase( a ) returns true.
Parameters:
switchValue - the switch value.
Returns:
true if the switchValue is deemed to be equal to the caseValue
Since:
1.0

iterator

public Iterator iterator()
 
Attempts to create an Iterator for the given object by first converting it to a Collection.
Returns:
an Iterator for the given Object.
Since:
1.0
See:
DefaultTypeTransformation#asCollection.

metaClass

public MetaClass metaClass(Closure closure)
 
Sets/updates the metaclass for a given object to a closure.
Parameters:
closure - the closure representing the new metaclass.
Returns:
the new metaclass value
Since:
1.6.0

print

public void print(Object value)
 
Print a value formatted Groovy style to self if it is a Writer, otherwise to the standard output stream.
Parameters:
value - the value to print.
Since:
1.0

print

public void print(PrintWriter out)
 
Print to a console in interactive format.
Parameters:
out - the PrintWriter used for printing.
Since:
1.0

printf

public void printf(String format, Object[] values)
 
Printf to a console (Only works with JDK1.5 or later).
Parameters:
format - a format string.
values - values referenced by the format specifiers in the format string..
Since:
1.0

printf

public void printf(String format, Object arg)
 
Prints a formatted string using the specified format string and arguments.

For examples,

    printf ( "Hello, %s!\n" , [ "world" ] as String[] )
    printf ( "Hello, %s!\n" , [ "Groovy" ])
    printf ( "%d + %d = %d\n" , [ 1 , 2 , 1+2 ] as Integer[] )
    printf ( "%d + %d = %d\n" , [ 3 , 3 , 3+3 ])

( 1..5 ).each { printf ( "-- %d\n" , [ it ] as Integer[] ) } ( 1..5 ).each { printf ( "-- %d\n" , [ it ] as int[] ) } ( 0x41..0x45 ).each { printf ( "-- %c\n" , [ it ] as char[] ) } ( 07..011 ).each { printf ( "-- %d\n" , [ it ] as byte[] ) } ( 7..11 ).each { printf ( "-- %d\n" , [ it ] as short[] ) } ( 7..11 ).each { printf ( "-- %d\n" , [ it ] as long[] ) } ( 7..11 ).each { printf ( "-- %5.2f\n" , [ it ] as float[] ) } ( 7..11 ).each { printf ( "-- %5.2g\n" , [ it ] as double[] ) }

Parameters:
format - A format string.
arg - Argument which is referenced by the format specifiers in the format string. The type of arg should be one of Object[], List, int[], short[], byte[], char[], boolean[], long[], float[], or double[]..
Since:
1.0

println

public void println()
 
Print a linebreak to the standard output stream.
Since:
1.0

println

public void println(Object value)
 
Print a value formatted Groovy style (followed by a newline) to self if it is a Writer, otherwise to the standard output stream.
Parameters:
value - the value to print.
Since:
1.0

println

public void println(PrintWriter out)
 
Print to a console in interactive format.
Parameters:
out - the PrintWriter used for printing.
Since:
1.0

putAt

public void putAt(String property, Object newValue)
 
Allows the subscript operator to be used to set dynamically named property values. bean[somePropertyNameExpression] = foo. The normal property notation of groovy is neater and more concise but only works with property names which are known at compile time.
Parameters:
property - the name of the property to set.
newValue - the value to set.
Since:
1.0

respondsTo

public List respondsTo(String name, Object[] argTypes)
 

Returns an object satisfying Groovy truth if the implementing MetaClass responds to a method with the given name and arguments types.

Note that this method's return value is based on realised methods and does not take into account objects or classes that implement invokeMethod or methodMissing

This method is "safe" in that it will always return a value and never throw an exception

Parameters:
name - The name of the method of interest.
argTypes - The argument types to match against.
Returns:
A List of MetaMethods matching the argument types which will be empty if no matching methods exist
Since:
1.6.0
See:
MetaObjectProtocol#respondsTo.

respondsTo

public List respondsTo(String name)
 

Returns an object satisfying Groovy truth if the implementing MetaClass responds to a method with the given name regardless of the arguments.

Note that this method's return value is based on realised methods and does not take into account objects or classes that implement invokeMethod or methodMissing

This method is "safe" in that it will always return a value and never throw an exception

Parameters:
name - The name of the method of interest.
Returns:
A List of MetaMethods matching the given name or an empty list if no matching methods exist
Since:
1.6.1
See:
MetaObjectProtocol#respondsTo.

setMetaClass

public void setMetaClass(MetaClass metaClass)
 
Set the metaclass for an object.
Parameters:
metaClass - the new metaclass value.
Since:
1.6.0

sleep

public static void sleep(long milliseconds)
 
Sleep for so many milliseconds, even if interrupted.
Parameters:
milliseconds - the number of milliseconds to sleep.
Since:
1.0

sleep

public static void sleep(long milliseconds, Closure onInterrupt)
 
Sleep for so many milliseconds, using a given closure for interrupt processing.
Parameters:
milliseconds - the number of milliseconds to sleep.
onInterrupt - interrupt handler, InterruptedException is passed to the Closure as long as it returns false, the sleep continues.
Since:
1.0

split

public Collection split(Closure closure)
 
Splits all items into two lists based on the closure condition. The first list contains all items matching the closure expression. The second list all those that don't.
Parameters:
closure - a closure condition.
Returns:
a List whose first item is the accepted values and whose second item is the rejected values
Since:
1.6.0

sprintf

public String sprintf(String format, Object[] values)
 
Sprintf to a string (Only works with JDK1.5 or later).
Parameters:
format - a format string.
values - values referenced by the format specifiers in the format string..
Returns:
the resulting formatted string
Since:
1.5.0

sprintf

public String sprintf(String format, Object arg)
 
Returns a formatted string using the specified format string and arguments.

Parameters:
format - A format string.
arg - Argument which is referenced by the format specifiers in the format string. The type of arg should be one of Object[], List, int[], short[], byte[], char[], boolean[], long[], float[], or double[]..
Returns:
the resulting printf'd string
Since:
1.5.0

toString

public String toString()
 
Create a String representation of this object.
Returns:
a string.
Since:
1.0

use

public Object use(Class categoryClass, Closure closure)
 
Scoped use method
Parameters:
categoryClass - a category class to use.
closure - the closure to invoke with the category in place.
Returns:
the value returned from the closure
Since:
1.0

use

public Object use(List categoryClassList, Closure closure)
 
Scoped use method with list of categories.
Parameters:
categoryClassList - a list of category classes.
closure - the closure to invoke with the categories in place.
Returns:
the value returned from the closure
Since:
1.0

use

public Object use(Object[] array)
 
Allows you to use a list of categories, specifying the list as varargs. use(CategoryClass1, CategoryClass2) { ... } This method saves having to wrap the the category classes in a list.
Parameters:
array - a list of category classes and a Closure.
Returns:
the value returned from the closure
Since:
1.0

with

public Object with(Closure closure)
 
Allows the closure to be called for the object reference self.

Any method invoked inside the closure will first be invoked on the self reference. For instance, the following method calls to the append() method are invoked on the StringBuilder instance:
def b = new StringBuilder().with {
  append('foo')
  append('bar')
  return it
}
assert b.toString() == 'foobar'
This is commonly used to simplify object creation, such as this example:
def p = new Person().with {
  firstName = 'John'
  lastName = 'Doe'
  return it
}
Parameters:
closure - the closure to call on the object.
Returns:
result of calling the closure
Since:
1.5.0

Groovy JDK