https://www.youtube.com/watch?v=nsK4TP_uvaY
λλ€(Lambda)λ λ©μλλ₯Ό κ°κ²°νκ² ννν λ¬Έλ²μ΄λ€.
π ν μ€ μ μ
βμ½λλ₯Ό κ°μ²λΌ μ λ¬νκΈ° μν λ°©λ²β
new Runnable() {
@Override
public void run() {
System.out.println("μ€ν");
}
};
() -> System.out.println("μ€ν");
μ½λκ° ν¨μ¬ κ°κ²°ν΄μ§λ€.
κ²°λ‘ : ν¨μμ²λΌ 보μ΄μ§λ§ κ°μ²΄λ€
μλ°λ ν¨μ μ체λ₯Ό λ³μμ²λΌ λ€λ£° μ μκΈ° λλ¬Έμ
λλ€λ λ΄λΆμ μΌλ‘ κ°μ²΄(ν¨μν μΈν°νμ΄μ€ ꡬν체)λ‘ λ³νλλ€.
(λ§€κ°λ³μ) -> { μ€νλ¬Έ }
μμ
(a, b) -> a + b
λ°ννμ , λ©μλλͺ λͺ¨λ μλ΅λ νν
λλ€λ λ°λμ ν¨μν μΈν°νμ΄μ€μ ν¨κ» μ¬μ©λλ€.
β μ μ
μΆμ λ©μλκ° νλλ§ μλ μΈν°νμ΄μ€
@FunctionalInterface
interface Calculator {
int calc(int a, int b);
}
μ¬μ© μ
Calculator add = (a, b) -> a + b;
μΈν°νμ΄μ€ μ€λͺ
Runnable μ€νλ§
Supplier κ° λ°ν
Consumer κ° μλΉ
Predicate 쑰건 νλ¨
Function<T, R> λ³ν
-> java.util.function ν¨ν€μ§μ μ‘΄μ¬
μ½λκ° μ§§μμ§λ€
κ°λ
μ±μ΄ μ’μμ§λ€
λΆνμν ν΄λμ€ μ κ±°
μ€νΈλ¦Ό APIμ κΆν©μ΄ μ’λ€
κ΅¬λΆ μ΅λͺ
ν΄λμ€ λλ€
μ½λ κΈΈμ΄ κΉ μ§§μ
class νμΌ μμ±λ¨ μ μμ±λ¨
this μκΈ° μμ μΈλΆ ν΄λμ€
π― ν΅μ¬ ν μ€ μ 리
λλ€ = λ©μλλ₯Ό λ³μμ²λΌ λ€λ£¨κΈ° μν λ¬Έλ²
μ²μμ λ―μ€μ§λ§, κ²°κ΅ ν΅μ¬μ νλμλ€.
-> μ½λλ₯Ό λ κ°κ²°νκ² λ§λ€κΈ° μν λꡬ
νΉν μ€νΈλ¦Όκ³Ό ν¨κ» μ¬μ©ν λ μ§μ§ κ°λ ₯ν¨μ λλ μ μλ€.
κΈ°μ‘΄ μλ° β κ°μ²΄ μ€μ¬
λλ€ β λμ μ€μ¬
-> μλ°κ° μ μ ν¨μν μ€νμΌλ‘ νμ₯λλ λλ
#java #lambda #λλ€ #μ½λ©κ³΅λΆ #κ°λ°κ³΅λΆ
πππ