Про аннотации порядок несколько специфичен:
Вы пишете аннотацию, которая говорит о том, что поле содержит некоторое значение, например так:
@Returns(AvatarBaseParams.CORE_OBJ_NAME) List itsBaseParams;
далее в начале существования класса вы заполняете Map<String,Field>, а в методе вместо перебора полей делаете return fieldMap.get(name).value().get(), примерно так.
Задача: Объекты и доступ