Package 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

  Modifier and Type | Method | Description
  --- | --- | ---
  `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 Details

  - ### 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
    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
    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
    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`