Metot imzasında yer alan parametrelere metot bünyesinde değer atanmamalıdır. Bu gibi atamalar istenmeyen sonuçlar doğurabilir. Remove Assignments to Parameters refactoring metodu kullanılarak bu tür parametre değer atamaları geçici degişkenlere yapılmalıdır.
private void execute(int value) { if (value == 10) value = 1; doSometthink(value); }
Yukarda yer alan metot Remove Assignments to Parameters uygulandığı taktirde aşağıdaki yapıya sahip olacaktır. Metot bünyesinde result isminde yeni geçici bir değişken tanımlanmış ve böylece parametrenin taşıdığı değer metot gövdesinde korunmuştur.
private void execute(int value) { int result = 0; if (value == 10) result = 1; doSometthink(result); }
final kelimesi kullanılarak metot bünyesinde parametrelere değer atanması otomatik olarak engellenebilir.
private void execute(final int value) { if (value == 10) value = 1; doSometthink(value); }
Yukarda yer alan value=1 şeklindeki atama, value parametresi final olduğu için aşağıda yer alan hataya sebep olacaktır:
The final local variable value cannot be assigned. It must be blank and not using a compound assignment
EOF (End Of Fun)
Özcan Acar