有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Spring接口转换器

我想将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级


共 (1) 个答案

  1. # 1 楼答案

    正如Spring的^{}文档所说:

    A converter converts a source object of type S to a target of type T

    所以S是源类型T是目标类型

    因此,如果您想将ClassA转换为ClassB,您将创建Converter<ClassA, ClassB>实现。不能同时使用Converter将两种类型转换为单一类型。您必须创建两个转换器以按此顺序进行转换,例如ClassA -> ClassB -> ClassC

    或者为ClassAClassB创建一些包装类型:

    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();
    };