29 January 2013
Once in a while I come across Java code bases where the a reference to a just created object is checked against
Often this occurs in unit tests like the following:
Foo foo = new Foo(); assertNotNull(foo);
This is nonsense. An object creation never returns
null. If something fails when instanciating the object, an exception is thrown.
Even if not enough memory is available to create the object an
OutOfMemoryError is thrown instead.
BTW, this is different in languages like Objective-C and Smalltalk where the class instantiating methods (
new) are ordinary class level methods which can of course return
I recommend reading Object Initialization in Java by Bill Venners to get a deep understanding of this stuff.