将变量的修饰符更改为最终[重复]

Posted

技术标签:

【中文标题】将变量的修饰符更改为最终[重复]【英文标题】:Change modifier of variable to final [duplicate] 【发布时间】:2014-08-02 18:55:00 【问题描述】:

我有一个函数,我将 View 作为参数传递给它。现在,当我在函数 onAnimationEnd 中使用 statusView 时,编译器会给出一条消息,将 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);
                        
                    );


【问题讨论】:

你能发布完整的代码吗?或将变量声明为类变量;e 【参考方案1】:

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

【讨论】:

以上是关于将变量的修饰符更改为最终[重复]的主要内容,如果未能解决你的问题,请参考以下文章

更改Java中重写方法的访问修饰符?

在运行时更改访问修饰符

更改 Scala 默认类访问修饰符

final(最终修饰符)

java中的类修饰符成员变量修饰符方法修饰符。

java中的类修饰符成员变量修饰符方法修饰符