Ожидаемый ресурс типа anim при использовании тернарного оператора

Это очень глупая ошибка компилятора, и мне интересно, есть ли простой способ ее подавить (например, с помощью аннотации)?

Ошибка возникает во 2-м аргументе setCustomAnimations(). Ошибка: Expected resource of type anim.

FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();

int exit_animation = current_popup == null ? 0 : current_popup.getExitAnimation();

transaction.setCustomAnimations( fragment.getEnterAnimation(), exit_animation ); //ERROR

Если я расширю троичную строку до одного из следующих, ошибка исчезнет.

int exit_animation;

if ( current_popup == null )
    exit_animation = 0;
else
    exit_animation = current_popup.getExitAnimation();

Or:

int exit_animation = 0;

if ( current_popup != null )
    exit_animation = current_popup.getExitAnimation();

person Kacy    schedule 09.05.2017    source источник
comment
Я не пробовал, но можете ли вы добавить аннотацию @AnimRes к exit_animation? Я не знаю, работает ли это с локальными переменными.   -  person CommonsWare    schedule 09.05.2017
comment
@CommonsWare Отлично! Именно то, что я искал.   -  person Kacy    schedule 09.05.2017
comment
Если у вас есть возможность, ответьте на свой вопрос и покажите синтаксис. Рад слышать, что это сработало!   -  person CommonsWare    schedule 09.05.2017


Ответы (1)


Решение для подавления ошибки:

@AnimRes
int exit_animation = current_popup == null ? 0 : current_popup.getExitAnimation();

Кредит CommonsWare в комментариях.

person Kacy    schedule 09.05.2017