Any object can implement this interface to provide its actual
Such information is very useful when figuring out if the instance matches a generic
signature as Java does not convey the signature at runtime.
Users of this interface should be careful in complex hierarchy scenarios, especially
when the generic type signature of the class changes in sub-classes. It is always
possible to return
null to fallback on a default behavior.