Java中的最终参数和非最终参数之间有什么区别?

时间:2014-12-19 11:06:42

标签: java parameters final

我已经阅读了一些源代码。在util的包中,我看到了'final'关键字的大量用法。例如,PrefUtil.java中有一个方法:

public static void setAttendeeAtVenue(final Context context, final boolean isAtVenue) {
    SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
    sp.edit().putBoolean(PREF_ATTENDEE_AT_VENUE, isAtVenue).commit();
}

在此方法中,所有参数均由“final”修改。我在其他地方遇到过这样的一些案例。但我不明白'最终'的影响。所以,我在这里寻求帮助以消除我的想法。

3 个答案:

答案 0 :(得分:0)

使用final可确保不会重新分配传递的引用。您可以修改引用指向的对象。因此,您的对象不是 immutable ,它仍然是可变的,但无法重新分配引用。

答案 1 :(得分:0)

final表示一旦分配了该变量,您就无法更改该变量

对这些方法中的参数使用final意味着它不允许程序员在执行方法期间更改其值。

答案 2 :(得分:0)

final on参数将阻止方法内的代码重写它。

重写参数值是不好的做法,因为维护这样的代码非常困难。