кстати, в связи с поднятным вопросом возник вопрос 🙂 зачем некоторые используют (и даже в код стайл протаскивают) модификатор final в параметрах метода, если это не распространяется на иммутабельность состояния объекта, а замена ссылки запрещена самой спекой? просто от незнания или есть какой то скрытый смысл?
кстати, в связи с поднятным вопросом возник вопрос 🙂 зачем некоторые используют (и даже в код стайл протаскивают) модификатор final в параметрах метода, если это не распространяется на иммутабельность состояния объекта, а замена ссылки запрещена самой спекой? просто от незнания или есть какой то скрытый смысл?
потому что когда кто-то напишет void myMethod(MyCoolObject param) { param = new MyCoolObject(); //... }, искать это переприсваивание в будущем вообще не улыбается
кстати, в связи с поднятным вопросом возник вопрос 🙂 зачем некоторые используют (и даже в код стайл протаскивают) модификатор final в параметрах метода, если это не распространяется на иммутабельность состояния объекта, а замена ссылки запрещена самой спекой? просто от незнания или есть какой то скрытый смысл?
В 99999 случаях из 100 такое переприсваивание - или нарушение семантики параметра метода, или свидетель того, что ваш параметр метода обладает крайне хуёво описанной семантикой, и надо задуматься
Если я правильно понял, то можно поменять Editor > Color Scheme > Java > Variables > Reassigned local variable. Поставить что-то типа Background: FF8080. Будет ярко ругаться на такое, и final не нужен.