λλ€μ
μ΅λͺ
ν¨μλ₯Ό (맀κ°λ³μ) -> { μ€νλ¬Έ } ννλ‘ μ μν λ°©μ
β’
μνμ ν¨μ
β’
μνμ λλ€μ
β’
λ©μλ
β’
λλ€μ
β¦
λλ€μ νν
β¦
λλ€μ λ¬Έλ²κ·μΉ
β¦
λλ€μ μ¬μ©
μνμ ν¨μ
ν μ§ν©μ κ° μμλ₯Ό λ€λ₯Έ μ§ν©μ μμμ λμμν€λ κ·μΉ
f(x, y) = x + y
Java
볡μ¬
μνμ λλ€μ
ν¨μμ μ μλ₯Ό κ°κ²°νκ² νννκΈ° μν κΈ°λ²
(x, y) -> x + y
Java
볡μ¬
λ©μλ
λ©μλλ ν΄λμ€ λ΄λΆμ μ μν ν¨μ
κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°μ κΈ°λ°ν κ°λ
λ©μλ νν
μ κ·Όμ§μ μ λ°ννμ
λ©μλλͺ
( 맀κ°λ³μ ) { }
Plain Text
볡μ¬
λλ€μ
μνμ λλ€μ κ°λ
μ μ°¨μ©νμ¬, μ΅λͺ
ν¨μλ₯Ό μ μνλ κΈ°λ²
ν¨μν νλ‘κ·Έλλ°μ κΈ°λ°ν κ°λ
λλ€μ νν
( 맀κ°λ³μ1, 맀κ°λ³μ2 ) -> { μ€νλ¬Έ }
Java
볡μ¬
맀κ°λ³μ -> { μ€νλ¬Έ }
Java
볡μ¬
( 맀κ°λ³μ1, 맀κ°λ³μ2 ) -> μ€νλ¬Έ
Java
볡μ¬
( 맀κ°λ³μ1, 맀κ°λ³μ2 ) -> {
μ€νλ¬Έ1
return κ²°κ³Όκ°;
}
Java
볡μ¬
λλ€μ λ¬Έλ² κ·μΉ
λ¨μΌ νλΌλ―Έν°λ₯Ό κ°μ§λ κ²½μ°, ( ) κ΄νΈλ₯Ό μλ΅ν μ μμ΅λλ€.
λ κ° μ΄μμ νλΌλ―Έν°λ₯Ό κ°μ§λ κ²½μ°, κ΄νΈλ₯Ό λ°λμ μ¬μ©ν΄μΌ ν©λλ€.
λλ€μμ΄ λ¨μΌ ννμλ§μ ν¬ν¨νλ κ²½μ°, { } μ€κ΄νΈλ₯Ό μλ΅ν μ μμ΅λλ€.
{ } μ€κ΄νΈ μλ΅ μ, return μ λ°λμ μλ΅ν΄μν©λλ€.
λλ€μ μ¬μ©
1.
ν¨μν μΈν°νμ΄μ€ μ μ
a.
μΆμ λ©μλκ° 1κ°μΈ μΈνμ΄μ€λ₯Ό μ μ
2.
λλ€μ μ΅λͺ
ν¨μ μ μνμ¬ μΈν°νμ΄μ€μ μ μΈ
3.
λλ€μ ν¨μ νΈμΆ
@FunctionalInterface // μ»΄νμΌλ¬μ ν΄λΉ μΈν°νμ΄μ€κ° ν¨μν μΈν°νμ΄μ€μμ λͺ
μμ μΌλ‘ μλ €μ€λ€.
interface FuncInterface {
// * @FunctionalInterface λ₯Ό μ§μ νλ©΄, μΆμλ©μλλ₯Ό 2κ°μ΄μ μ μνλ©΄ μλ¬λ₯Ό λ°μνκ² νλ€.
void method();
// void method2(); * ν¨μν μΈν°νμ΄μ€λ, μΆμ λ©μλ 1κ°λ§ μ μν΄μΌνλ€.
}
public class LambdaFormat {
public static void main(String[] args) {
// 맀κ°λ³μ, λ°ννμ
μλ λλ€μ
// () -> { System.out.println("λλ€μ"); }
// () -> System.out.println("λλ€μ"); * ν λ¬Έμ₯μ΄λ©΄ {}μ€κ΄νΈ μλ΅κ°λ₯
FuncInterface fi = () -> System.out.println("μλ°λλ€μ");
fi.method();
}
}
Java
볡μ¬
μλ° νμ€ λΌμ΄λΈλ¬λ¦¬μ μ£Όμ ν¨μν μΈν°νμ΄μ€
μΈν°νμ΄μ€ | λ©μλ | μ€λͺ
|
Function<T, R> | R apply(T t) | νλμ μΈμλ₯Ό λ°μ κ²°κ³Όλ₯Ό λ°νν©λλ€. |
Consumer<T> | void accept(T t) | νλμ μΈμλ₯Ό λ°μ μ²λ¦¬νμ§λ§ κ²°κ³Όλ₯Ό λ°ννμ§ μμ΅λλ€. |
Predicate<T> | boolean test(T t) | νλμ μΈμλ₯Ό λ°μ boolean κ°μ λ°νν©λλ€. |
Supplier<T> | T get() | μΈμκ° μκ³ κ²°κ³Όλ₯Ό λ°νν©λλ€. |
BinaryOperator<T> | T apply(T t1, T t2) | λ κ°μ λμΌν νμ
μΈμλ₯Ό λ°μ λμΌν νμ
μ κ²°κ³Όλ₯Ό λ°νν©λλ€. |
UnaryOperator<T> | T apply(T t) | νλμ μΈμλ₯Ό λ°μ κ°μ νμ
μ κ²°κ³Όλ₯Ό λ°νν©λλ€. |