如果您使用依赖注入框架,您可以将参数添加到某个 bean 并通过自定义转换器的编程查找来获取该 bean
或
您可以为源类创建一个包装器并将参数传递给此包装器(假设源类的类型为Source,目标为Destination):
public class DataWrapper {
String param;
Source wrapped;
public DataWrapper(Source wrapped, String param) {
this.wrapped = wrapped;
this.param = param;
}
public String getParam() {
return param;
}
public Source getWrapped() {
return wrapped;
}
}
然后您应该编写一个映射配置和自定义转换器,用于将DataWrapper 类映射到您的Destination 类:
<custom-converters>
<converter type="your converter">
<class-a>DataWrapper</class-a>
<class-b>Destination</class-b>
</converter>
</custom-converters>
此转换器将处理param 并调用从Source 类到Destination 类的映射(映射配置也应该存在):
public Object convert(Object existingDestinationFieldValue, Object sourceFieldValue, Class<?> destinationClass,
Class<?> sourceClass) {
DataWrapper wrapper = (DataWrapper) sourceFieldValue;
String param = wrapper.getParam();
...
return mapper.map(wrapper.getWrapped(), destinationClass);
}
可以通过以下方式使用映射:
DataWrapper wrapper = new DataWrapper(source, "no:15, name:time, size:4, covert:test");
mapper.map(wrapper, Test.class);