java—如何制作一个通用的dynamodbtypeconverter来将枚举列表转换为字符串列表[发电机

wixjitnu  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(295)

我的问题是如何创建一个实现dynamodbtypeconverter的泛型转换器类。这个类将需要与我提供的任何枚举类一起工作。
这里我提供了一个到现场的转换器:

@DynamoDBTypeConverted(converter = TypeConverter.class)
private List<Types> types;

下面是我尝试过的转换器:

public class TypeConverter<T extends Enum<T> & OperationsEnums> implements DynamoDBTypeConverter<List<String>, List<T>> {

    private final Class<T> type;

    public TypeConverter(Class<T> typeClass){
        this.type = typeClass;
    }

    @Override
    public List<String> convert(List<T> object) {
        var result = new ArrayList<String>();
        object
                .forEach(value -> result.add(value.toString()));
        return result;
    }

    @Override
    public List<T> unconvert(List<String> objectsString) {
        var result = new ArrayList<T>();
        objectsString
                .forEach(value -> result.add(Enum.valueOf(type, value)));
        return result;
    }
}

如果有类似的问题,有人能分享他们在这个问题上的知识吗。谢谢您。

xcitsw88

xcitsw881#

因为 @Convert 注解工作。您将需要每个枚举的泛型转换器的子类,该子类将枚举类传递给超级构造函数。

相关问题