Last updated
Last updated
λλ€ ννμμ΄λ? ν¨μ(method)λ₯Ό μ(expression)μΌλ‘ ννν κ²
Javaλ jdk1.8(java 8)λΆν° ν¨μν κΈ°λ₯ μΌλΆ μ§μ
λ€μκ³Ό κ°μ΄ μ¬μ©
λ©μλ μ΄λ¦, λ°ννμ μ λ³΄κ° μ κ±°λ¨
λ°νκ°λ§ μλ κ²½μ° μ€κ΄νΈ, return λ¬Έ μ κ±°νκ³ μΆμ½ νν μ¬μ© κ°λ₯
맀κ°λ³μκ° νλλ©΄ μκ΄νΈλ μλ΅ κ°λ₯ (λμ νμ μ 보 μμ΄μΌ ν¨)
Javaμ λλ€μμ μ΅λͺ
ν¨μ
κ° μλλΌ μ΅λͺ
κ°μ²΄
μ? Javaμμ ν¨μλ λ°λμ ν΄λμ€ λ΄λΆμ λ©μλλ‘ μ‘΄μ¬ν΄μΌ νλ―λ‘
λλ€μμ μ΄μ©νκΈ° μν΄μλ ν¨μν μΈν°νμ΄μ€
κ° νμν¨
λλ€μμ λ€λ£¨κΈ° μν΄ μ μΈνλ μΈν°νμ΄μ€
(λλ€μμΌλ‘ μ μΈλ ) λ¨ νλμ λ©μλλ§ κ°λλ€.
@FunctionalInterface
μ΄λ
Έν
μ΄μ
μ μ΄μ©νλ€. (λ©ν μ΄λ
Έν
μ΄μ
λΆλΆ μ°Έμ‘°)
μμ1) max λλ€μμ μν ν¨μν μΈν°νμ΄μ€
μμ2) μ λ ¬ 쑰건μ μ§μ νλ Comparatorμ λμ λ°©μ
Comparator λν λ¨ νλμ λ©μλ compare
λ§ κ°μ§λ ν¨μν μΈν°νμ΄μ€μ΄λ€.
μμ£Ό μ¬μ©λλ ν¨μν μΈν°νμ΄μ€λ€μ μ 곡νλ ν¨ν€μ§
μ΄λ€μ λͺ¨λ λλ€μμ΄ ν λΉλ μ μμ
Runnable
μ€λ λλ₯Ό λ§λ€κΈ° μν μΈν°νμ΄μ€
void run()
ν¨μλ§ μ§μ
Supplier
곡κΈμ μν μ νλ μΈν°νμ΄μ€
T get()
λ©μλ μ§μ
맀κ°λ³μ(μ λ ₯κ°)λ μκ³ , λ°νκ°μ μ‘΄μ¬
Consumer
μλΉμ μν μ νλ μΈν°νμ΄μ€
void accept(T t)
λ©μλ μ§μ
맀κ°λ³μλ μκ³ , λ°νκ°μ μμ
Function<T, R>
ν¨μ μ체μ μν μ νλ μΈν°νμ΄μ€
R apply(T t)
λ©μλ μ§μ
맀κ°λ³μ(t), λ°νκ°(r) λͺ¨λ νλμ© μ‘΄μ¬
Predicate
쑰건μμ νννλλ° μ¬μ©
λλ€μμ κ²°κ³Ό(λ°νκ°)κ° booleanμ΄μ΄μΌ ν¨
boolean test(T t)
λ©μλ μ§μ
μ¬μ€ Predicateλ test μ΄μΈμλ λ€μκ³Ό κ°μ default λ©μλλ₯Ό μ 곡ν¨
Predicate<T> negate()
boolean κ²°κ³Όμ NOT μ°μ°μ ν Predicate λ°ν
Predicate<T> and(Predicate p)
λ€λ₯Έ κ²κ³Ό and μ°μ°ν Predicate λ°ν
Predicate<T> or(Predicate p)
λ€λ₯Έ κ²κ³Ό or μ°μ°ν Predicate λ°ν
static Predicate<T> isEqual(Object o)
μ£Όμ΄μ§ κ°μ²΄μ κ°μμ§λ₯Ό νλ³νλ Predicate λ°ν
static ν¨μμμ μ£Όμ
boolean result = Predicate.isEqual(str1).test(str2);
BiConsumer<T, U>
void accept(T t, U u)
BiPredicate<T, U>
boolean test(T t, U u)
BiFunction<T, U, R>
R apply(T t, U u)
UnaryOperator
T apply(T t)
BinaryOperator
T apply(T t, T t)
νλμ λ©μλλ§ νΈμΆνλ λλ€μμ λ©μλ μ°Έμ‘°
λ‘ μΆμ½ νν κ°λ₯
static λ©μλ λλ ν΄λΉ μΈμ€ν΄μ€μ λ©μλλ₯Ό μ°Έμ‘°(νΈμΆ)
ClassName::method
μμ±μ μ°Έμ‘°
ClassName::new