将变量的修饰符更改为final

时间:2014-08-02 18:55:00

标签: android modifier

我有一个函数,我将View作为参数传递给我。现在,当我在函数statusView中使用onAnimationEnd时,编译器会给出一条消息,将statusView的修饰符更改为final。所以我不明白为什么这是必要的?

private void showProgress(Context c, View statusView) {


            statusView.setVisibility(View.VISIBLE);
            statusView.animate().setDuration(shortAnimTime)
                    .alpha(show ? 1 : 0)
                    .setListener(new AnimatorListenerAdapter() {
                        @Override
                        public void onAnimationEnd(Animator animation) {
                            statusView.setVisibility(show ? View.VISIBLE
                                    : View.GONE);
                        }
                    });

}

1 个答案:

答案 0 :(得分:0)

由于变量statusView在AnimatorListenerAdapter创建的对象之外,因此必须在编译时知道它,因此,它被声明为final。但是,您可以通过在参数列表中声明最终(在第1行)来解决它。