Bikeshed: what do we call the distinguished method of a SAM?
Brian Goetz
brian.goetz at oracle.com
Tue Jul 2 12:55:14 PDT 2013
How about:
* <p>This is a <a href="package-summary.html">functional interface</a>
* whose functional abstract method is {@link #apply(Object)}.
where this is defined in package info:
* <em>Functional interfaces</em> provide target types for lambda
expressions
* and method references. Each functional interface has a single
abstract method,
* called the <em>functional abstract method</em> for that functional
interface,
* to which the lambda expression's parameter and return types are
matched or
* adapted. Functional interfaces can provide a target type in
multiple contexts,
* such as assignment context, method invocation, or cast context:
On 7/2/2013 3:44 PM, Brian Goetz wrote:
> Working on the spec for the SAMs. In consultation with Doug, converging
> on a style that casts a SAM as *representing* an abstract entity such as
> a function or operation, and treating the SAM *as if* it were that
> function. For example:
>
> /**
> * Represents a function that accepts one argument and produces a result.
> *
> * @param <T> the type of the input to the function
> * @param <R> the type of the result of the function
> *
> * @since 1.8
> */
> @FunctionalInterface
> public interface Function<T, R> {
>
> /**
> * Applies this function to an argument.
> *
> * @param t the function argument
> * @return the function result
> */
> R apply(T t);
>
> I think one thing that is missing is tying together the sole SAM method
> with the SAM class. This is obvious in a SAM with no default or static
> methods (and no methods from Object), but starts to get lost in the
> noise as the method count adds up.
>
> I'm thinking of something like:
>
> * This is a <a href="...">functional interface</a> whose _____ method
> is {@link #apply}.
>
> For some value of ____. What do we call the primary SAM method? The
> implementation method? The primary SAM method? The abstract method?
>
More information about the lambda-libs-spec-experts
mailing list