簡體   English   中英

如何制作通用 DynamoDBTypeConverter 以將枚舉列表轉換為字符串列表? [動態數據庫]

[英]How can I make a generic DynamoDBTypeConverter to convert a List of enums into a list of strings ? [DynamoDB]

我的問題是如何制作實現 DynamoDBTypeConverter 的通用轉換器 class。 這個 class 需要與我提供的任何枚舉 class 一起使用。

這是我為該領域提供轉換器的地方:

@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注釋的工作方式,您不能使用通用轉換器。 每個枚舉都需要一個通用轉換器的子類,它將枚舉 class 傳遞給超級構造函數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM