在看android 开发SDK的时候,button有这么一段例子
public class MyActivity extends Activity {
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.content_layout_id);
final Button button = (Button) findViewById(R.id.button_id);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Perform action on click
}
});
}
}
请问下为什要把buuton声明为final的呢,这样做的目的是什么呢?
------解决方案--------------------
只有final的局部变量可以用在内联方法里面。比如onClick里面如果调用button.setText(...),就必须将button设置为final的
------解决方案--------------------
个人认为有两个目的
1,Java 中内部类调用外部类局部变量要 final
2,代码有几百行的时候,自己忘了,然后把button 改了,结果就是:没有按照我们的“意愿”运行,然后报错
final 的化。是不让修改的。就避免了这样的错误。