Java 8 Lambda Expressions: Difference between revisions
Line 12: | Line 12: | ||
A ''lambda'' expression can be thought of as an anonymous methods. As shown in the "[[#Syntax|Syntax]]" section below, a lambda expression looks a lot like a method declaration. | A ''lambda'' expression can be thought of as an anonymous methods. As shown in the "[[#Syntax|Syntax]]" section below, a lambda expression looks a lot like a method declaration. | ||
<font color=red>TODO: one pass yellow/de-yellow over the Oracle tutorial.</font> | <font color=red>TODO: one pass yellow/de-yellow over the [https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html Oracle tutorial].</font> | ||
=Playground Example= | =Playground Example= |
Revision as of 03:03, 20 October 2017
External
- Lambda Expressions Tutorial https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html
Internal
Overview
A lambda expression can be thought of as an anonymous methods. As shown in the "Syntax" section below, a lambda expression looks a lot like a method declaration.
TODO: one pass yellow/de-yellow over the Oracle tutorial.
Playground Example
Functional Interface
An interface with only one method is named functional interface
Apparently this is the type of a lambda expression, it describe the function signature.
The Type of a Lambda Expression
Elaborate here.
Syntax
A lambda expression consists in a comma-separated list of formal parameters, enclosed in parentheses, followed by the arrow token "->" followed by a body, which may be a single expression or a statement block.
(comma_separated_formal_parameter_list) -> body
Formal Parameters
The type of the parameters may be omitted.
If there is a single parameter, the enclosed parentheses may be omitted.
Body
The body may be a single expression, or a statement block.
Referencing a Lambda Expression
Method References
Example:
public ZipHandler getZipHandler() { return ZipUtil::getTopLevelDirectoryName; }
Variables
The variables used in the lambda expressions must be final.
Statement Lambdas and Expression Lambdas
Statement Lambda:
(ZipEntry e) -> { s.append(e.getName()); }
Expression Lambda:
(ZipEntry e) -> s.append(e.getName())