commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From sebb <seb...@gmail.com>
Subject Re: svn commit: r1002145 - in /commons/proper/math/trunk/src: main/java/org/apache/commons/math/distribution/ test/java/org/apache/commons/math/distribution/
Date Tue, 28 Sep 2010 15:35:26 GMT
On 28 September 2010 16:18, Luc Maisonobe <Luc.Maisonobe@free.fr> wrote:
> Le 28/09/2010 16:56, sebb a écrit :
>> On 28 September 2010 15:42, Luc Maisonobe <Luc.Maisonobe@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-unsubscribe@commons.apache.org
>> For additional commands, e-mail: dev-help@commons.apache.org
>>
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
> For additional commands, e-mail: dev-help@commons.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org


Mime
View raw message