λλ€μμ λ©μλλ₯Ό νλμ μ(expression)μΌλ‘ ννν κ².
- κ°μ²΄ μ§ν₯ μΈμ΄λ³΄λ€λ ν¨μ μ§ν₯ μΈμ΄μ κ°κΉλ€.
- ν¨μλ₯Ό κ°λ΅νλ©΄μλ λͺ
νν μμΌλ‘ ννν μ μλλ‘ ν΄μ€λ€.
- λ©μλλ₯Ό λλ€μμΌλ‘ νννλ©΄ λ©μλμ μ΄λ¦ λ° λ°ν κ°μ΄ μμ΄μ§λ―λ‘ μ΅λͺ
ν¨μ λΌκ³ λ νλ€.
- λλ€μμ ννλ λ§€κ° λ³μλ₯Ό κ°μ§ μ½λ λΈλ‘μ΄μ§λ§ λ°νμ μμλ μ΅λͺ
ꡬν κ°μ²΄λ₯Ό μμ±νλ€.
(맀κ°λ³μ, ...) -> { μ€νλ¬Έ ... }
(맀κ°λ³μ, ...)λ μ€λ₯Έμͺ½ μ€κ΄νΈ { } λΈλ‘μ μ€ννκΈ° μν΄ νμν κ°μ μ 곡νλ μν μ νλ€.
-> κΈ°νΈλ λ§€κ° λ³μλ₯Ό μ΄μ©ν΄μ μ€κ΄νΈ { } λ°λλ₯Ό μ€ννλ€λ λ»μΌλ‘ ν΄μνλ©΄ λλ€.
interface ExFunctionInterface
{
public void method();
}
public class ExFunctionInterfaceTest
{
public static void main(String[] args)
{
ExFunctionInterface test = new ExFunctionInterface() {
public void method() {
System.out.println("test");
}
};
test.method();
}
}
// Lambda μ μ©
public class ExFunctionInterfaceTest
{
public static void main(String[] args)
{
ExFunctionInterface test = () -> System.out.println("test");
test.method();
}
}
- λ°ν κ°μ΄ μλ λ©μλμ κ²½μ° return λμ expression μΌλ‘ λμ ν μ μλ€.
(expressionμΈ κ²½μ° ; λ₯Ό λΆμ΄μ§ μλλ€.) - λλ€μμ μ μΈλ 맀κ°λ³μ νμ μ μΆλ‘ μ΄ κ°λ₯ν κ²½μ° μλ΅ κ°λ₯ (λλΆλΆ μλ΅κ°λ₯)
- λ§€κ° λ³μκ° νλμΈ κ²½μ° ()λ₯Ό μλ΅ν μ μλ€.
- {} μ λ¬Έμ₯μ΄ νλμΈ κ²½μ° μλ΅ν μ μλ€.
-
μ½λλ₯Ό κ°κ²°νκ² λ§λ€ μ μλ€.
-
μ½λκ° κ°κ²°νκ³ μμ κ°λ°μμ μλκ° λͺ νν λλ¬λλ―λ‘ κ°λ μ±μ΄ ν₯μλλ€.
-
ν¨μλ₯Ό λ§λλ κ³Όμ μμ΄ νλ²μ μ²λ¦¬ν μ μκΈ°μ μ½λ©νλ μκ°μ΄ μ€μ΄λ λ€.
-
λ³λ ¬νλ‘κ·Έλλ°μ΄ μ©μ΄νλ€.
-
λλ€λ₯Ό μ¬μ©νλ©΄μ λ§λλ 무λͺ ν¨μλ μ¬μ¬μ©μ΄ λΆκ°λ₯νλ€.
-
λλ²κΉ μ΄ λ€μ κΉλ€λ‘λ€.
-
λλ€λ₯Ό λ¨λ°νλ©΄ μ½λκ° μ§μ λΆν΄μ§ μ μλ€. (λΉμ·ν ν¨μλ₯Ό κ³μ μ€λ³΅μμ±ν κ°λ₯μ±μ΄ λμ)
-
μ¬κ·λ‘ λ§λ€κ²½μ°μλ λ€μ λΆμ ν©νλ©΄μ΄ μλ€.