Создание общего DynamoDBMarshalling для перечислений

Я использую 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 это невозможно...

12
задан Chen Harel 8 April 2012 в 15:33
поделиться