On 28 September 2010 16:18, Luc Maisonobe <luc.maison...@free.fr> wrote: > Le 28/09/2010 16:56, sebb a écrit : >> On 28 September 2010 15:42, Luc Maisonobe <luc.maison...@free.fr> wrote: >>> Le 28/09/2010 16:25, Gilles Sadowski a écrit : >>>>> >>>>> It seems some recent changes break compilation. Not in this specific >>>>> set, but probably one of the previous ones from today or yesterday. >>>> >>>> Break compilation? >>>> "mvn clean site" produces a "BUILD SUCCESSFUL" here. >>>> >>>>> The problems are some @Override annotations in BetaDistributionImpl >>>>> (getAlpha, getBeta), GammaDistributionImpl (getalpha, getBeta) and >>>>> ExponentialDistributionImpl (getMean). They directly implement >>>>> interfaces and do not extend a superclass, so the Override annotation >>>>> generates an error (at least on Eclipse). >>>> >>>> So, does that mean that Eclipse refuses to compile because of annotations? >>> >>> Yes. >>> >>>> Seems a bug in Eclipse... >> >> It's an incompatibilty between Java 1.5 and Java 1.6. >> >>> No, it is the expected behaviour, or at least it is what I understand >>> from this: >>> <http://java.sun.com/docs/books/jls/third_edition/html/interfaces.html#9.6.1.4> >>> >>> "Note that if a method overrides a method from a superinterface but >>> not from a superclass, using @Override will cause a compile-time >>> error." >>> >> >> This is only true for Java 1.5. >> >>>> >>>> Is it the expected behaviour that "@Override" only means "overrides a >>>> method in a class but not in an interface"? >>> >>> Yes. >>> >>>> >>>> [Anyway, I'll try and remove the annotations in all those problematic >>>> cases. I thought I was being nice in putting them :-}.] >>> >>> I agree this is strange. They explain the rationale for it in the link >>> above. >> >> ... where they say that using @Override for interface implementations >> would be confusing. >> >> But unfortunately they changed their minds with Java 1.6 - >> implementations of interfaces should now have @Override tags. >> >> You can change the Eclipse settings to stop reporting this: >> >> Properties | Java Compiler | Errors/Warnings | Annotations | Missing >> '@Override' | Include implementations of interface methods (1.6 or >> higher) > > As we target 1.5 for [math], it may be better to not do that and staty > with the strange behaviour.
I suggest *disabling* the warning of missing interface @Overrides for any projects that must be 1.5 compatible. Alternatively, make sure that Eclipse is set to use 1.5 to compile Math, and it should not suggest adding the overrides. > Luc > >> >> I could not find an updated JLS which documents this. >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org >> For additional commands, e-mail: dev-h...@commons.apache.org >> >> > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org > For additional commands, e-mail: dev-h...@commons.apache.org > > --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org