Философия Java

         

Аргументы final


Java позволяет Вам так же создавать и аргументы final определением их таким образом прямо в списке аргументов. Это означает, что внутри метода Вы не сможете изменить этот аргумент или его ссылку:

//: c06:FinalArguments.java

// Использование "final" с аргументами методов.

class Gizmo { public void spin() {} }

public class FinalArguments { void with(final Gizmo g) { //! g = new Gizmo(); // Неверно -- g - final

} void without(Gizmo g) { g = new Gizmo(); // OK -- g не final

g.spin(); } // void f(final int i) { i++; } // Не может измениться

// Вы можете только читать примитив:

int g(final int i) { return i + 1; } public static void main(String[] args) { FinalArguments bf = new FinalArguments(); bf.without(null); bf.with(null); } } ///:~

Заметьте, что Вы все еще можете соединить null ссылку с final аргументом, без реакции со стороны компилера, таким же образом, как и с не final аргументами.

Методы f( ) и g( ) показывают, что случается, когда примитивный аргумент - final: Вы можете прочитать его, но не можете изменить его.



Содержание раздела