java - Spring接口转换器
问题描述
我有要转换为 ClassC 的 ClassA 和 ClassB,但如果我想使用 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;
}
然后从 classD 到 classC ?
解决方案
正如 Spring 的文档Converter
所说:
转换器将类型的源对象转换为类型
S
的目标T
S
源类型和T
目标类型也是如此。
因此,如果您想转换ClassA
为ClassB
您将创建Converter<ClassA, ClassB>
实现。您不能Converter
一次将两种类型转换为单一类型。例如,您必须创建两个转换器以按此顺序进行转换ClassA -> ClassB -> ClassC
。
ClassA
或者为and创建一些包装器类型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();
};
推荐阅读
- kotlin - 检查多个已知值时简化谓词
- php - 在文件夹上循环并重命名每个文件时“系统找不到指定的文件”
- java - 我无法使用 eval() 评估字符串
- python - 数组到带有颜色图的图像
- javascript - 使用 JS 在 Google Analytic 中设置目标
- spring - Spring JdbcTemplate:PreparedStatement的ResultSet中count(*)的返回值类型
- angular - 在 Angular 中禁用 DI
- docker - 为什么 dockerized zap 在基线扫描结束时挂起?
- javascript - Angular 和 jQuery:未附加到动态创建的 HTML 元素的事件
- java - 尝试从表中删除行时出错