On 03/02/2013 02:34 PM, Uwe Schindler wrote:
Looks good to me!
Are this the only methods in the corelib that were removed in favour of a 
default implementation in the interface?

I would not described the method as "removed," but to my knowledge AnnotatedElement.isAnnotationPresent was the only existing interface method in the core libraries replaced by a default method. The intended use case for default methods is adding new methods to interface and that change has certainly been done in other parts of the API.

Cheers,

-Joe


Uwe

-----
Uwe Schindler
[email protected]
Apache Lucene PMC Member / Committer
Bremen, Germany
http://lucene.apache.org/

-----Original Message-----
From: Joe Darcy [mailto:[email protected]]
Sent: Saturday, March 02, 2013 3:06 AM
To: Core-Libs-Dev
Cc: Jonathan Gibbons; Alexander Buckley; Maurizio Cimadamore;
[email protected]
Subject: JDK 8 RFR: 8009267: Restore isAnnotationPresent methods in public
AnnotatedElement implementations

Hello,

The changes pushed under

      8007113: Upgrade AnnotatedElement.isAnnotionPresent to be a default
method
      http://hg.openjdk.java.net/jdk8/tl/jdk/rev/e04467fa13af

combined with how javac currently models default methods under pre-JDK-8
source versions can result in some source compatibility impacts for those
using JDK 8 to compile under older source versions if the recommended
practice of setting the bootclasspath is not followed. [1]

To mitigate these impacts, I'm proposing the changes in

      8009267: Restore isAnnotationPresent methods in public
AnnotatedElement implementations
      http://cr.openjdk.java.net/~darcy/8009267.1/

which have the effect of restoring a concrete isAnnotationPresent method
to Class, Package, Field, Method, and Constructor. The implementation
delegates to the default method on the AnnotatedElement interface.

Thanks,

-Joe

[1]
http://mail.openjdk.java.net/pipermail/compiler-dev/2013-
February/005738.html

Reply via email to