Path: csiph.com!newsfeed.hal-mli.net!feeder3.hal-mli.net!newsfeed.hal-mli.net!feeder1.hal-mli.net!npeer01.iad.highwinds-media.com!news.highwinds-media.com!feed-me.highwinds-media.com!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail From: Lew Newsgroups: comp.lang.java.programmer Subject: Re: @Override Date: Mon, 23 Jul 2012 13:59:59 -0700 (PDT) Organization: http://groups.google.com Lines: 53 Message-ID: <9da89e66-d7df-47e1-84d4-2dddea7d744f@googlegroups.com> References: <75036e8b-8b5f-4ea4-aef7-c063249f5707@googlegroups.com> NNTP-Posting-Host: 69.28.149.29 Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 X-Trace: posting.google.com 1343077321 31099 127.0.0.1 (23 Jul 2012 21:02:01 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Mon, 23 Jul 2012 21:02:01 +0000 (UTC) In-Reply-To: Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=69.28.149.29; posting-account=CP-lKQoAAAAGtB5diOuGlDQk0jIwmH0T User-Agent: G2/1.0 X-Received-Bytes: 2965 Xref: csiph.com comp.lang.java.programmer:16267 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