This question already has an answer here:
- Can constructor return a null object? 9 answers
Is it possible for the following line to return null?
MyClass obj = new MyClass();
If so, what conditions would cause a return value of null?
This question already has an answer here:
Is it possible for the following line to return null?
MyClass obj = new MyClass();
If so, what conditions would cause a return value of null?
No, this can't return null. It could, however, throw an exception and depending on how you handle that exception the
obj
reference might still be null after the exception is handled (if you leave the code block, e.g. by not catching the exception, theobj
reference would cease to exist and thus it wouldn't matter).Reasons for exceptions in a constructor are manifold, for example if you run out of memory (in which case you get an
OutOfMemoryError
) or if you access an uninitialized field which is still null and would cause aNullPointerException
.Short answer - NO.
But you can throw an exception from a constructor, in which case, if
obj
was initially assigned tonull
, it will remainnull
.a static initializer error
like
You cannot ask your question without specifying the context. In an application server, the above will creare Myclass2 with test=null. Why ? Because the Error is typically trapped by the application server.
In my opinion it is impossible. If somehow you run out of memory in Java you will get
OutOfMemoryError
exception.It's impossible for
new
to return null, assuming the VM is functioning correctly.From section 15.9.4 of the Java Language Specification: