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

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

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

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

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

  1. public class TypeConverter<T extends Enum<T> & OperationsEnums> implements DynamoDBTypeConverter<List<String>, List<T>> {
  2. private final Class<T> type;
  3. public TypeConverter(Class<T> typeClass){
  4. this.type = typeClass;
  5. }
  6. @Override
  7. public List<String> convert(List<T> object) {
  8. var result = new ArrayList<String>();
  9. object
  10. .forEach(value -> result.add(value.toString()));
  11. return result;
  12. }
  13. @Override
  14. public List<T> unconvert(List<String> objectsString) {
  15. var result = new ArrayList<T>();
  16. objectsString
  17. .forEach(value -> result.add(Enum.valueOf(type, value)));
  18. return result;
  19. }
  20. }

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

xcitsw88

xcitsw881#

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

相关问题