μλ°μμ λλ€ ννμμ κΈ°λ³Έμ μΌλ‘ μ΅λͺ ν¨μμ ν ννμ΄λ€. μ΄κ²μ λ©μλλ₯Ό νλμ μ(expression)μΌλ‘ ννν κ²μΌλ‘, λ©μλμ λ§€κ°λ³μ, λ©μλ λ³Έλ¬Έ, λ°ν νμ μ κ°κ²°νκ² ννν μ μλ€. μ΄λ νΉν 컬λ μ μ μμλ₯Ό μννκ±°λ, μ€λ λ μμ μ μ²λ¦¬νλ λ±μ μν©μμ μ μ©νλ€.
λλ€ ννμμ μ΅λͺ ν΄λμ€λ₯Ό μ¬μ©ν κ²λ³΄λ€ λ κ°κ²°νκ² μ½λλ₯Ό μμ±ν μ μκ² ν΄μ£Όλ©°, λλ€ ννμμ΄ μ¬μ©λλ κ³³μμλ μλ° μ»΄νμΌλ¬κ° μ΅λͺ ν΄λμ€λ₯Ό μμ±νμ¬ λλ€ ννμμ λ체νλ€. μ¦, λλ€ ννμμ μ»΄νμΌ μμ μ μ΅λͺ ν΄λμ€λ‘ λ³νλλ κ²μ΄λ€.
μ΄ μ΅λͺ ν΄λμ€λ ν΄λΉ λλ€ ννμμ΄ μ μ©λλ λμ μΈν°νμ΄μ€λ₯Ό ꡬννκ² λλ€. μ΄λ° λ°©μμΌλ‘ λλ€ ννμμ λ©μλλ₯Ό κ°κ²°νκ³ λͺ λ£νκ² ννν μ μκ² ν΄μ£Όλ©°, μλ°μ ν¨μν νλ‘κ·Έλλ°μ κ°λ₯νκ² νλ€.
λλ€λ μ£Όλ‘ μ΄λ²€νΈ μ²λ¦¬, λΉλκΈ° μ²λ¦¬, λ°μ΄ν° μ²λ¦¬ λ±μ νμ©λ μ μλ€.
λλ€ ννμμ (λ§€κ°λ³μ) β {μ€νλ¬Έ}μ ννλ₯Ό κ°μ§λ€. μλ₯Ό λ€μ΄ λ μ μμ ν©μ κ³μ°νλ λλ€ ννμμ λ€μκ³Ό κ°μ΄ μμ±ν μ μλ€.
(a, b) -> {return a + b};
λλ€ ννμμ λ³Έλ¬Έμ΄ ν λ¬Έμ₯μΌ κ²½μ°μλ μ€κ΄νΈμ returnμ μλ΅ν μ μλ€.
(a, b) -> a + b;
λλ€ ννμμ ν¨μν μΈν°νμ΄μ€λ₯Ό ꡬννλ λ°μ μ£Όλ‘ μ¬μ©λλ€. ν¨μν μΈν°νμ΄μ€λ μ€μ§ νλμ μΆμ λ©μλλ₯Ό κ°μ§ μΈν°νμ΄μ€λ₯Ό λ§νλ€.
// Runnableμ ν¨μν μΈν°νμ΄μ€μ΄λ€.
Runnable runnalbe = () -> System.out.println("Hello, Lambda!");
runnable.run();
μ λλ€μμ μ€ννλ©΄ μ½μμ Hello, Lambda! κ° μΆλ ₯λλ€.
