Я работаю над разрешением предупреждений Checkstyle в проекте Java.Стиль проверки Java: конечное назначение переменной задания параметра
Пусть это метод я есть:
public SomeObject someObjectBehavior(SomeObject oldSomeObject,
SomeObject newSomeObject) {
if(oldSomeObject == null) {
oldSomeObject = newSomeObject;
}
}
Когда я включить Checkstyle, он уведомляет
Параметр oldSomeObject должно быть окончательным
Параметр newSomeObject должно быть окончательным
Когда я конвертирую оба параграфа метров, как это:
public SomeObject someObjectBehavior(final SomeObject oldSomeObject,
final SomeObject newSomeObject) {
if(oldSomeObject == null) {
oldSomeObject = newSomeObject; //Assignment operation
}
}
Итак, теперь операция присваивания не представляется возможным, есть ошибка в Java коде
Конечное локальная переменная oldSomeObject не может быть назначена. Он должен быть пустым и не использовать составное назначение.
Если кто-либо из вас столкнулся с этим, так что, пожалуйста, помогите, поскольку я пытаюсь решить все проблемы Checkstyle.
Thank You
С уважением
Анкер Шарма
В Java аргументы метода рассматриваются как локальные переменные, поэтому присвоение значения аргументу метода не влияет на вызывающего метода. Это только путает читателей вашего метода, который может подумать, что 'oldSomeObject' ссылается на значение, которое было передано, но вместо этого содержит значение, которое было присвоено ему в методе. –
@AnkurSharma Каков ваш прецедент для назначения значений объектов, переданных параметром? –
@Igor Ganapolsky, на самом деле это был предварительно написанный код, и нам был предоставлен код для решения только проблемных вопросов как можно больше.Я бы изменил код для вышеупомянутого назначения, но нам не разрешалось модифицировать код в то время ... так что эта ситуация возникла. –