Class LispInterpreter.JavaNull

  extended by ix.util.UniqueObject
      extended by ix.util.lisp.LispInterpreter.JavaNull
All Implemented Interfaces:
Enclosing class:

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