将变量的修饰符更改为最终[重复]
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 行)中声明它来解决它。
【讨论】:
以上是关于将变量的修饰符更改为最终[重复]的主要内容,如果未能解决你的问题,请参考以下文章