2015-03-16 2 views
0

Во время работы PMD я получил следующее сообщение.PMD LocalVariableCouldBeFinal

Локальная переменная, назначенная только один раз, может быть объявлена ​​окончательной.

Меняет ли локальная переменная окончательный Оптимизирует код? Если да, то какой эффект?

Это не решило мою проблему. Я спрашиваю, есть ли какая-нибудь оптимизация для кода?

+0

возможно дубликата [Как окончательными работает ключевое слово] (http://stackoverflow.com/questions/15655012/how-final-keyword-works) – reto

+0

Я спрашиваю о проблеме производительности если таковые имеются в отношении оптимизации кода? –

ответ

1

Вы должны стараться делать это каждый раз, когда это уместно. Кроме того, чтобы предупредить вас, когда вы «случайно» попытаетесь изменить значение, он предоставляет информацию компилятору/jdk, которая может привести к лучшей оптимизации файла класса.

Эффект: Хорошо, если вы сделаете локальную переменную final согласно определению, вы никогда не сможете ее изменить. Поэтому в будущем, если вы хотите назначить другое значение для локальной переменной, вам нужно удалить последнее ключевое слово. немного переделать. Кроме этого, я не вижу никакого вреда, почему вы не должны делать локальную переменную final.

Ред. Книга: «Hardcore Java» Роберта Симмонса, младшего. Книга посвящает всю свою вторую главу об использовании финала для содействия оптимизации и предотвращения логических ошибок.

Надеется, что это полезно для вас

+0

Какую оптимизацию он предоставляет? –

+0

Представьте себе ситуацию, когда у вас есть 2 драгоценных предмета, у которых есть срок годности, когда он должен быть отполирован, а у другого нет даты истечения срока действия. что будет делать, если вы сохраните этот элемент. Тот, который требует полировки, вы будете держать его в стороне от ваших глаз и своевременно проверять его срок годности. Для других вы просто бросаете его туда, где он не требует большого внимания. Это именно поведение JVM с вашими конечными и не конечными переменными :) – Ravikiran763

Смежные вопросы