我如何使一个通用的DynamoDBTypeConverter将枚举列表转换为字符串列表?[DynamoDB]



我的问题是如何制作一个实现DynamoDBTypeConverter的通用转换器类。该类需要与我提供的任何enum类一起工作。

我在这里提供了一个字段的转换器:

@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;
}
}

如果有人遇到过类似的问题,可以分享一下他们的知识吗?谢谢你。

由于@Convert注释的工作方式,您不能使用通用转换器。每个枚举需要一个泛型转换器的子类,该子类将枚举类传递给超构造函数。

最新更新