Я использую Amazon Web Services SDK для Java для DynamoDB; пытаясь создать интерфейс для @DynamoDBMarshalling:
Class<? extends DynamoDBMarshaller<? extends Object>> marshallerClass();
Я создаю маршаллер, который получает любое Enum:
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 для универсального типа, и некоторые другие попытки привели к другим ошибкам. Я начинаю думать, что с контрактом Amazon это невозможно...