The ancestors of these classes evolved to have API for handling Type and Class separately. This is unnecessary.. we should unify this API by focusing on Type and special-casing Class.
This will simplify things and reduce the number of signatures.
Furthermore the API of <T> convert(Object, Class<T>) is really a holdover from the old uber-conversion mindset. What we should have is:
The ancestors of these classes evolved to have API for handling
TypeandClassseparately. This is unnecessary.. we should unify this API by focusing onTypeand special-casingClass.This will simplify things and reduce the number of signatures.
Furthermore the API of
<T> convert(Object, Class<T>)is really a holdover from the old uber-conversion mindset. What we should have is:NullConverter)castingConverterthat handles casting. This implies that low-level converters do not cast, but provide their specific output type.O convert(I)