Never is a strong word. In any case, let it be if you believe it is going
to provide  benefits…

I believe `final` modifier should be used in certain situation when it is
truly required. For instance, when we have to design/create a library and
we want to make sure an object is immutable. Then, we configure all of its
variables as final. Now, declaring a variable final in the middle of a
method to protect against ourselves…. It does not seem to bring much
benefit against future mistaken/accidental changes. It is always possible
for the hypothetical future programmer to remove the final and change the
variable. Perhaps a better documentation for the method explaining this
situations could bring more benefits. A single variable declared as final
does not give a hint for people on why it was made final.

On Sat, Jan 20, 2018 at 2:08 PM, Tutkowski, Mike <mike.tutkow...@netapp.com>
wrote:

> Perhaps your argument against the final keyword is that it should never be
> used? If so, you and @wido can debate that and let me know which way you’d
> like this bit of code to end up.
>
> > On Jan 20, 2018, at 9:05 AM, Tutkowski, Mike <mike.tutkow...@netapp.com>
> wrote:
> >
> > It’s pretty much the reason why the final variable exists in Java: to
> make a variable a constant so no one accidentally changes it. @wido just
> wanted the code to protect against the variable being changed...that’s all.
> >
> >> On Jan 20, 2018, at 8:25 AM, Rafael Weingärtner <
> rafaelweingart...@gmail.com> wrote:
> >>
> >> Changed by a future programmer that may develop some changes in your
> code?
> >> Because, if you do not code any other assignment to that variable, it
> will
> >> never happen.
> >>
> >> On Sat, Jan 20, 2018 at 1:16 PM, Tutkowski, Mike <
> mike.tutkow...@netapp.com>
> >> wrote:
> >>
> >>> @wido just wanted to make sure the Boolean variable didn’t accidentally
> >>> get changed later since it’s critical it keep that value.
> >>>
> >>>> On Jan 20, 2018, at 8:14 AM, Tutkowski, Mike <
> mike.tutkow...@netapp.com>
> >>> wrote:
> >>>>
> >>>> I made it final per @wido’s comment (in #2415). How’s about you guys
> >>> hash it out and get back to me. :)
> >>>>
> >>>>> On Jan 20, 2018, at 8:06 AM, GitBox <g...@apache.org> wrote:
> >>>>>
> >>>>> rafaelweingartner commented on a change in pull request #2416:
> >>> CLOUDSTACK-10244: KVM online storage migration fails
> >>>>> URL: https://github.com/apache/cloudstack/pull/2416#
> >>> discussion_r162784630
> >>>>>
> >>>>>
> >>>>>
> >>>>> ##########
> >>>>> File path: plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/
> >>> resource/wrapper/LibvirtMigrateCommandWrapper.java
> >>>>> ##########
> >>>>> @@ -132,8 +132,9 @@ Use VIR_DOMAIN_XML_SECURE (value = 1) prior to
> >>> v1.0.0.
> >>>>>          vmsnapshots = libvirtComputingResource.
> >>> cleanVMSnapshotMetadata(dm);
> >>>>>
> >>>>>          Map<String, MigrateCommand.MigrateDiskInfo>
> >>> mapMigrateStorage = command.getMigrateStorage();
> >>>>> +            final boolean migrateStorage = MapUtils.isNotEmpty(
> >>> mapMigrateStorage);
> >>>>>
> >>>>> Review comment:
> >>>>> This variable does not need to be final. It does not bring any
> >>> benefits here.
> >>>>>
> >>>>> You needed to assign the result of the first `MapUtils.isNotEmpty(
> mapMigrateStorage)`
> >>> because the method `replaceStorage` might change the status of
> >>> `mapMigrateStorage`, right?
> >>>>>
> >>>>> ----------------------------------------------------------------
> >>>>> This is an automated message from the Apache Git Service.
> >>>>> To respond to the message, please log on GitHub and use the
> >>>>> URL above to go to the specific comment.
> >>>>>
> >>>>> For queries about this service, please contact Infrastructure at:
> >>>>> us...@infra.apache.org
> >>>>>
> >>>>>
> >>>>> With regards,
> >>>>> Apache Git Services
> >>>
> >>
> >>
> >>
> >> --
> >> Rafael Weingärtner
>



-- 
Rafael Weingärtner

Reply via email to