我有 ClassA 和 ClassB,我想将它们转换为 ClassC,但如果我想使用 Spring 转换器:
org.springframework.core.convert.converter
Interface Converter<S,T>
Type Parameters:
S - the source type
T - the target type
我应该创建另一个 classD,例如
ClassD classD {
ClassA classA;
ClassB classB;
}
然后从D类到C类?
最佳答案
作为 Spring 的文档 Converter
说:
A converter converts a source object of type
S
to a target of typeT
所以S
是源类型且 T
是目标类型。
所以如果你想转换ClassA
至ClassB
您将创建Converter<ClassA, ClassB>
执行。您无法使用 Converter
将两种类型转换为单一类型立刻。您必须创建两个转换器才能按此顺序进行转换,例如 ClassA -> ClassB -> ClassC
。
或者为 ClassA
创建一些包装类型和ClassB
:
public class Wrapper {
private ClassA a;
private ClassB b;
}
然后创建一个转换器Converter<Wrapper, ClassD>
实现:
Converter<Wrapper, ClassC> converter = wrapper -> {
//access wrapper
wrapper.getA();
wrapper.getB();
return new ClassC();
};
关于java - Spring接口(interface)转换器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57832151/