关键字最终的用法是什么?

2022-09-04 05:25:05

在下面的代码中,如果我从EditText中删除关键字final,我是一个在行(6)中获取错误,其中我将EditText对象(et)传递给意图...我必须知道最终关键字在这里的意义...

final EditText et=(EditText)findViewById(R.id.t);
        Button b=(Button)findViewById(R.id.b1);
        b.setOnClickListener(new Button.OnClickListener(){
            public void onClick(View v)<br>
            {
            Intent on=new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+et.getText()));
            startActivity(on);
            }
        });

答案 1

Final 本质上意味着变量不会在任何时候被重新赋值,而是会一直存在。这意味着内部类,就像你的监听器一样,可以相信它不会被其他一些可能导致各种麻烦的线程重新分配。et

final 还可用于修改方法或类定义,这意味着该方法不能被子类覆盖,或者该类不能扩展。


答案 2

这是因为你在这里使用闭包。这意味着内部类使用入站类的上下文。要使用它,变量应声明为 final,以免被更改。

在此处查看更多内容


推荐