Request for review: proposal for @FunctionalInterface checking (original) (raw)
Joe Darcy joe.darcy at oracle.com
Tue Jan 8 12:04:02 PST 2013
- Previous message: mappedTo -> join?
- Next message: Request for review: proposal for @FunctionalInterface checking
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Hello,
While there were some reservations expressed about this proposal, there were no strong objections so I'm going forward with adding this annotation type to the platform, with a somewhat refined specification.
Thanks,
-Joe
On 12/28/2012 1:38 PM, Joe Darcy wrote:
Hi Sam,
On 12/28/2012 12:28 PM, Sam Pullara wrote: On Dec 28, 2012, at 3:02 PM, Joe Darcy <joe.darcy at oracle.com_ _<mailto:joe.darcy at oracle.com>> wrote:
has exactly one abstract method. Since default methods are not abstract, any default methods declared in an interface do not contribute to its abstract method count. If an interface declares a method overriding one of the public methods of java.lang.Object, that also does not count toward the abstract method count.
This is pretty murky. This works: interface Foo { @Override boolean equals(Object other); } but if you try this interface Foo { @Override default boolean equals(Object other) { return false; } } it does give an error that says I can't override: *java: default method equals in interface spullara.Foo overrides a member of java.lang.Object* Seems like "override" is the wrong word to use and will likely be confusing since we are explicitly disallowing the second one.
Yes, I was contemplating whether "override" was the best phrasing to use in the wording above because of this sort of wrinkle. Instead "abstract method overriding one of the ..." might help distinguish this particular case. -Joe
- Previous message: mappedTo -> join?
- Next message: Request for review: proposal for @FunctionalInterface checking
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the lambda-libs-spec-observers mailing list