Re: @Override
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.
--
Lew