Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #16455
| 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 |
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 | Next — Next in thread | Find similar | Unroll 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