If the final
parameter is specified when a variable is declared, it cannot be changed.
public void i1(final String i1) { i1 = ""; // ΠΎΡΠΈΠ±ΠΊΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ }
Also, the final
parameter gives access to anonymous classes. I know such an example on Android when you launch Activity
:
@Override protected void onCreate(final Bundle i1) { super.onCreate(i1); setContentView(R.layout.layout_i1); new AlertDialog.Builder(this) .setTitle(getString(R.string.app_name)) .setPositiveButton("ΠΠ", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface i2, int i3) { i1.clone(); // Π²ΠΎΡ ΡΡΡ ΠΌΠΎΠΆΠ΅ΠΌ Π΅Π³ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π’ΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ Ρ Bundle i1 ΡΠΊΠ°Π·Π°Π½ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ final return; } }) .setNegativeButton("ΠΡΡ
ΠΎΠ΄", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface i1, int i2) { i1.cancel(); finish(); return; } }) .create() .show(); }
After all, if you replace this line
protected void onCreate(final Bundle i1) {
on this
protected void onCreate(Bundle i1) {
here it is
@Override public void onClick(DialogInterface i2, int i3) { i1.clone(); <<<--------- Π² ΡΡΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ return; }
there will be a compilation error.