To: Eric Sosman
From: Jim Janney <(E-Mail Removed)>
Eric Sosman <(E-Mail Removed)> writes:
> On 7/23/2012 2:30 PM, 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
> Javadoc comments, not "really necessary" ...
>[*] 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.
When you've overridden a class method in some third-party package and then
upgrade to a later version of that package, it sometimes turns out that the
method has been removed, or renamed, or given some additional parameters. It's
much nicer to get a compile-time error than to eventually discover that your
overriding method is no longer being called. This has happened to me more than
once with Hibernate.
--- BBBS/Li6 v4.10 Dada-1
* Origin: Prism bbs (1:261/3
--- Synchronet 3.16a-Win32 NewsLink 1.98
Time Warp of the Future BBS - telnet://time.synchro.net:24