Re: @Override
On Monday, July 23, 2012 2:40:21 PM UTC-7, Daniele Futtorovic wrote:
On 23/07/2012 22:59, Lew allegedly wrote:
> Eric Sosman wrote:
>> bob smith wrote:
>>> Is it really necessary to write @Override when you override or is this just "a good thing"?
>>
>> Two benefits of @Override appear to me, one from its presence
>> and one from its absence:
>>
>> - If you write @Override and then misspell the method name or
>> mess up the parameter list, Java will say "Hey, wait: There's
>> nothing in the superclass with this signature; what do you
>> think you're doing?" And then you'll say "Oops!" and fix
>> the problem, instead of wondering why your "overriding" method
>> doesn't seem to work.
>>
>> - If you write a method and your IDE starts suggesting that you
>> ought to tag it with @Override, you'll be alerted that you've
>> overridden something you didn't intend to.[*]
>>
>> Two benefits; that's all I see. Hence, like indentation and
>
> And that wasn't enough?
>
> Add the third benefit that I mentioned upthread. Aren't they enough now?
>
> Is your disparaging tone rhetorical, or do you really find the
> benefit of '@Override' to be that marginal?
>
> Because it isn't.
>
>> Javadoc comments, not "really necessary" ...
>
> Dental patient:
> Is flossing my teeth really necessary? Which ones do
> *really* need to floss?
>
> Dentist:
> Just the ones you want to keep!
>
>> [*] This actually happened to me earlier today. I was writing
>> a little Swing doodad to edit the "locations" of inventory items,
>> and I gave it a getLocation() method. NetBeans started clamoring
>> for @Override, and I realized that my doodad extended JPanel which
>> in turn extended JComponent, which already has a getLocation() ...
>> Time for "Facepalm!" and a quick name change.
>
> That is an excellent anecdote to support the idea that the
> '@Override' annotation is really necessary.
>
> But only where you want to catch bugs at compile time before
> they bite you in production.
>
Uh... there was a (pretty long) time when people and programs *did*
manage to exist without that annotation, you know. No need to be overly
dramatic.
You sound like Grandpaw complaining that kids these days have it too easy.
"In my day, we had to check for ourselves whether the method overrode a
parent method!"
Your irrelevant observation does not give a reason to eschew '@Override'.
The fact is that Java *does* have it, and it *is* useful for the class of bugs
it helps prevent.
A point you ignore in your rush to fallacious argumentation.
That languages (including Java itself) didn't used to have
it is hardly an argument against it. In fact, that Java added it, given the
language's resistance to change, is strong evidence in favor of it.
So your evidence supports use of '@Override'. You drew exactly the
opposite of the correct conclusion from your data.
--
Lew