我正在为 DynamoDB 使用适用于 Java 的 Amazon Web Services SDK;试图满足@DynamoDBMarshalling 的接口:
Class<? extends DynamoDBMarshaller<? extends Object>> marshallerClass();
我构建了一个接收任何枚举的编组器:
public class EnumMarshaller<T extends Enum<T>> implements DynamoDBMarshaller<T>
{
@Override
public String marshall(T getterReturnResult)
{
return getterReturnResult.toString();
}
@Override
public T unmarshall(Class<T> clazz, String obj)
{
return Enum.valueOf(clazz, obj);
}
}
问题是,当我尝试在我的字段上使用注释时,我无法弄清楚:
public static enum MyEnum {BLA, BLA2}
@DynamoDBMarshalling(marshallerClass=EnumMarshaller<MyEnum>.class)
public MyEnum getStatus()
{
return status;
}
我不能在泛型类型上调用 .class 并且其他一些尝试出现了不同的错误。我开始认为亚马逊的合同是不可能的......