Returns the canonical name of the underlying class or returns null if the
underlying class does not have a canonical name (i.e., if it is a local or anonymous class or an array whose
component type does not have a canonical name).
Returns:
the canonical name of the underlying class if it exists, and
null
otherwise.