@FunctionalInterface and Javadoc
david.holmes at oracle.com
Mon Nov 25 16:53:47 PST 2013
On 26/11/2013 10:41 AM, Brian Goetz wrote:
> A long time ago, we agreed that the Javadoc for a functional interface
> should say something like "This is a functional interface." This is
> done using a structural analysis of the interface, just as when used as
> the target of a lambda.
> Later in time, we arrived at @FunctionalInterface, which is optional to
> use. It is closest in spirit to @Override, since:
> - It captures design intent
> - It enlists the compiler's aid in catching violations of such intent;
> an @FI-marked method that is not a functional interface will merit a
> compile error.
> It has recently been pointed out that perhaps we should adjust the
> Javadoc generation, to trigger off of @FI rather than structurally,
> since there are functional interfaces in the JDK that are not marked @FI
> (deliberately) but which still bear the "This is a functional interface"
I would think you still want both as discussed in the email thread, but
with different wording, also as discussed. I can imagine existing
libraries being used across 7 and 8 and so not being able to apply @FI.
I think something like:
"In its current form this is implicitly a functional interface."
which captures the implicit-ness and that in the future, should the
interface be enhanced, it may no longer be a functional interface.
More information about the lambda-spec-experts