Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #16455

Re: @Override

From "Jim Janney" <jim.janney@1:261/38.remove-z1h-this>
Subject Re: @Override
Message-ID <50142C2A.55426.calajapr@time.synchro.net> (permalink)
Newsgroups comp.lang.java.programmer
Date 2012-07-28 18:36 +0000
Organization tds.net

Show all headers | View raw


  To: Eric Sosman
From: "Jim Janney" <jim.janney@1:261/38.remove-nwi-this>

  To: Eric Sosman
From: "Jim Janney" <jim.janney@1:261/38.remove-10ae-this>

  To: Eric Sosman
From: Jim Janney <jjanney@shell.xmission.com>

Eric Sosman <esosman@ieee-dot-org.invalid> 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.

--
Jim Janney

-+- BBBS/Li6 v4.10 Dada-1
 + Origin: Prism bbs (1:261/38)
-+- Synchronet 3.16a-Win32 NewsLink 1.98
Time Warp of the Future BBS - telnet://time.synchro.net:24

-+- BBBS/Li6 v4.10 Dada-1
 + Origin: Prism bbs (1:261/38)
-+- Synchronet 3.16a-Win32 NewsLink 1.98
Time Warp of the Future BBS - telnet://time.synchro.net:24

--- BBBS/Li6 v4.10 Dada-1
 * Origin: Prism bbs (1:261/38)
--- Synchronet 3.16a-Win32 NewsLink 1.98
Time Warp of the Future BBS - telnet://time.synchro.net:24

Back to comp.lang.java.programmer | Previous | NextNext in thread | Find similar | Unroll thread


Thread

Re: @Override "Jim Janney" <jim.janney@1:261/38.remove-z1h-this> - 2012-07-28 18:36 +0000
  Re: @Override "Lars Enderin" <lars.enderin@1:261/38.remove-z1h-this> - 2012-07-28 18:36 +0000

csiph-web