ix.util.lisp
Class LispInterpreter.JavaNull

java.lang.Object
  extended by ix.util.UniqueObject
      extended by ix.util.lisp.LispInterpreter.JavaNull
All Implemented Interfaces:
java.io.Serializable
Enclosing class:
LispInterpreter

public static final class LispInterpreter.JavaNull
extends UniqueObject

Class used to create a single object that represents Java null. That object is used only by the "java-call" function, and only when the Java method that it calls returns null. We take this approach because the interpreter throws an exception if any expression that it evaluates returns null. Since java-call therefore cannot return null, it has to return something that represents null. The reason for the exception for nulls is that bugs that involve stray nulls can be tricky to fix, because by the time the null causes a problem, it may not be at all clear where it came from; and so the interpreter complains about nulls as soon as possible.

See Also:
LispInterpreter.JAVA_NULL, Serialized Form

Field Summary
 
Fields inherited from class ix.util.UniqueObject
name
 
Method Summary
 
Methods inherited from class ix.util.UniqueObject
getName, setName, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait