我之前使用过Delphi和C#,现在刚开始学习Java。我的问题与在同一个方法的作用域内声明和实例化一个变量来保存已实例化类时,是否需要使用"final"关键字有关。例如:
private String getDeviceID() {
//get the android device id
final TelephonyManager tm =
(TelephonyManager)GetBaseContext().getSystemService(Context.TELEPHONY_SERVICE);
final String deviceID = tm.getDeviceId();
// log debug message containing device ID
Log.d(LOG_CAT, "getDeviceID: " + deviceID);
return deviceID;
}
好的,我想我理解了“final”变量只能赋值一次且由于每个声明中的“final”关键字不能更改,但当方法退出时,两个变量是否都超出范围呢?并且再次调用该方法将只重新分配2个新的最终变量,这些变量再次将在方法退出时超出范围?
对我来说,在这些变量上使用“final”关键字似乎有点奇怪?除非我不明白它们如何影响方法作用域内的局部变量?
有人能告诉我“final”对于方法作用域的影响是什么,或者将这些特定的变量声明为最终变量只是某人做的愚蠢的事情吗?