Fills the fields with default not-null values. If a field type is an
interface a proxy returning default values for each method will be created.
If it's an abstract class a new concrete implementation of that type will
created and instantiated at run-time.
There are two scenarios where a field-type cannot possibly be assigned.
-
When a class contains a field of it's own type, which would lead to infinite
recursion,
null
is assigned.
- When the field type is an abstract Java system class with no visible
constructor (package-private)
null
is assigned.