org.codehaus.groovy.runtime

## Class NullObject

- java.lang.Object
- - groovy.lang.GroovyObjectSupport
  - - org.codehaus.groovy.runtime.NullObject

All Implemented Interfaces:
  GroovyObject

    public class NullObject
    extends GroovyObjectSupport

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`boolean` `asBoolean()` A null object always coerces to false.
`java.lang.Object` `asType(java.lang.Class c)` Type conversion method for null.
`java.lang.Object` `clone()` Since this is implemented as a singleton, we should avoid the use of the clone method
`boolean` `equals(java.lang.Object to)` null is only equal to null
`static NullObject` `getNullObject()` get the NullObject reference
`java.lang.Object` `getProperty(java.lang.String property)` Tries to get a property on null, which will always fail
`int` `hashCode()`
`java.lang.Object` `invokeMethod(java.lang.String name, java.lang.Object args)` Tries to invoke a method on null, which will always fail
`boolean` `is(java.lang.Object other)` The method "is" is used to test for equal references.
`java.util.Iterator` `iterator()` iterator() method to be able to iterate on null.
`java.lang.Object` `plus(java.lang.Object o)` Fallback for null+null.
`java.lang.Object` `plus(java.lang.String s)` Allows to add a String to null.
`void` `setProperty(java.lang.String property, java.lang.Object newValue)` Tries to set a property on null, which will always fail
`java.lang.String` `toString()`
`<T> T` `with(Closure<T> closure)` Allows the closure to be called for NullObject

### Methods inherited from class groovy.lang.GroovyObjectSupport

`getMetaClass, setMetaClass`

### Methods inherited from class java.lang.Object

`finalize, getClass, notify, notifyAll, wait, wait, wait`

### Method Detail

#### getNullObject

    public static NullObject getNullObject()

get the NullObject reference

Returns:
  the null object

#### clone

    public java.lang.Object clone()

Since this is implemented as a singleton, we should avoid the use of the clone method

Overrides:
  `clone` in class `java.lang.Object`

#### getProperty

    public java.lang.Object getProperty(java.lang.String property)

Tries to get a property on null, which will always fail

Specified by:
  `getProperty` in interface `GroovyObject`
Overrides:
  `getProperty` in class `GroovyObjectSupport`
Parameters:
  `property` - - the property to get
Returns:
  a NPE

#### with

    public <T> T with(Closure<T> closure)

Allows the closure to be called for NullObject

Parameters:
  `closure` - the closure to call on the object
Returns:
  result of calling the closure

#### setProperty

    public void setProperty(java.lang.String property,
                            java.lang.Object newValue)

Tries to set a property on null, which will always fail

Specified by:
  `setProperty` in interface `GroovyObject`
Overrides:
  `setProperty` in class `GroovyObjectSupport`
Parameters:
  `property` - - the proprty to set
  `newValue` - - the new value of the property

#### invokeMethod

    public java.lang.Object invokeMethod(java.lang.String name,
                                         java.lang.Object args)

Tries to invoke a method on null, which will always fail

Specified by:
  `invokeMethod` in interface `GroovyObject`
Overrides:
  `invokeMethod` in class `GroovyObjectSupport`
Parameters:
  `name` - the name of the method to invoke
  `args` - - arguments to the method
Returns:
  a NPE

#### equals

    public boolean equals(java.lang.Object to)

null is only equal to null

Overrides:
  `equals` in class `java.lang.Object`
Parameters:
  `to` - - the reference object with which to compare
Returns:
  - true if this object is the same as the to argument

#### iterator

    public java.util.Iterator iterator()

iterator() method to be able to iterate on null. Note: this part is from Invoker

Returns:
  an iterator for an empty list

#### plus

    public java.lang.Object plus(java.lang.String s)

Allows to add a String to null. The result is concatenated String of the result of calling toString() on this object and the String in the parameter.

Parameters:
  `s` - - the String to concatenate
Returns:
  the concatenated string

#### plus

    public java.lang.Object plus(java.lang.Object o)

Fallback for null+null. The result is always a NPE. The plus(String) version will catch the case of adding a non null String to null.

Parameters:
  `o` - - the Object
Returns:
  nothing

#### is

    public boolean is(java.lang.Object other)

The method "is" is used to test for equal references. This method will return true only if the given parameter is null

Parameters:
  `other` - - the object to test
Returns:
  true if other is null

#### asType

    public java.lang.Object asType(java.lang.Class c)

Type conversion method for null.

Parameters:
  `c` - - the class to convert to
Returns:
  always null

#### asBoolean

    public boolean asBoolean()

A null object always coerces to false.

Returns:
  false

#### toString

    public java.lang.String toString()

Overrides:
  `toString` in class `java.lang.Object`

#### hashCode

    public int hashCode()

Overrides:
  `hashCode` in class `java.lang.Object`