java / expert
Snippet
Komplexe Datentransformation mit GenericConverter
GenericConverter ist die flexibelste Schnittstelle in Springs Konvertierungssystem. Im Gegensatz zu einfachen Convertern bietet sie TypeDescriptors, was Logik ermöglicht, die von Generics oder Annotationen abhängt.
snippet.java
1
2
3
4
5
6
7
8
9
10
11
12
13
public class CollectionToReportConverter implements GenericConverter {@Overridepublic Set<ConvertiblePair> getConvertibleTypes() {return Collections.singleton(new ConvertiblePair(Collection.class, Report.class));}@Overridepublic Object convert(Object source, TypeDescriptor sourceType, TypeDescriptor targetType) {Collection<?> list = (Collection<?>) source;// Sophisticated logic using TypeDescriptor to inspect generic parametersreturn new Report(list.size(), sourceType.getElementTypeDescriptor().getType());}}
spring
Erklärung
1
getConvertibleTypes()
Definiert die unterstützten Quell-zu-Ziel-Mapping-Paare für diesen Converter.
2
sourceType.getElementTypeDescriptor()
Ermöglicht die Inspektion des generischen Komponententyps (z. B. T in List<T>) für fortgeschrittene Mapping-Logik.