Why do we need a no-args constructor?

For fields with constraints, such as @NonNull fields, no check is generated,so be aware that these constraints will generally not be fulfilled until those fields are properly initialized later. Certain java constructs, such as hibernate and the Service Provider Interface require a no-args constructor .

Read more

Why do we need no arg constructor?

The arguments of a constructor can only be found by type, not by name, so there is no way for the framework to reliably match properties to constructor args . Therefore, they require a no-arg constructor to create the object, then can use the setter methods to initialise the data.

Read more