Generic converter interface for converting between two or more types.
This is the most flexible of the Converter SPI interfaces, but also the most complex.
It is flexible in that a GenericConverter may support converting between multiple source/target
type pairs (see
getConvertibleTypes(). In addition, GenericConverter implementations
have access to source/target
field context during the type conversion
process. This allows for resolving source and target field metadata such as annotations and
generics information, which can be used to influence the conversion logic.
This interface should generally not be used when the simpler
ConverterFactory interface is sufficient.
Implementations may additionally implement