μλ°μμ ν¨μν νλ‘κ·Έλλ°μ μ£Όλ‘ Java 8μμ μΆκ°λ λλ€ ννμ λ° μ€νΈλ¦Ό APIλ₯Ό νμ©νμ¬ κ΅¬νλ©λλ€. Java 8λΆν° ν¨μν νλ‘κ·Έλλ° κ°λ μ΄ λμ λλ©΄μ μ½λλ₯Ό λ κ°κ²°νκ² μμ±νκ³ , λ³λ ¬ μ²λ¦¬λ₯Ό μ½κ² μνν μ μκ² λμμ΅λλ€.
λλ€ ννμμ μ΅λͺ ν¨μλ₯Ό μμ±νλ κ°κ²°ν λ¬Έλ²μ μ 곡ν©λλ€. μ΄λ ν¨μν μΈν°νμ΄μ€λ₯Ό ꡬνν λ μ μ©νκ² μ¬μ©λ©λλ€. ν¨μν μΈν°νμ΄μ€λ νλμ μΆμ λ©μλλ₯Ό κ°μ§ μΈν°νμ΄μ€λ₯Ό μλ―Ένλ©°, λλ€ ννμμΌλ‘ ν΄λΉ λ©μλλ₯Ό κ°λ¨νκ² κ΅¬νν μ μμ΅λλ€.
μ½λ μμ 1
μ½λ μμ 2
λλ€μμ λ©μλμ μ΄λ¦κ³Ό λ°ννμ μ μ κ±°νκΈ°μ μ΅λͺ ν¨μλΌ ν μ μμ§λ§ λ μ ννκ²λ μ΅λͺ κ°μ²΄μ λλ€. κ·Έλ λ€λ©΄ κ°μ²΄λ₯Ό λ€λ£¨κΈ°μν μ°Έμ‘°λ³μκ° νμνμ£ ? μμ λλ€μμ΄ μλ¬λ₯Ό λνλ΄λ μ΄μ λ λλ€μ(μ΅λͺ κ°μ²΄)λ₯Ό λ€λ£¨κΈ° μν μ°Έμ‘° λ³μκ° μ€μ λμ΄ μμ§ μκΈ° λλ¬Έμ λλ€. μ¬κΈ°μ ν¨μν μΈν°νμ΄μ€ κ°λ μ΄ λ±μ₯ν©λλ€.
ν¨μν μΈν°νμ΄μ€λ λ¨μΌ μΆμ λ©μλ(SAM, Single Abstract Method)λ₯Ό κ°μ§λ©°, @FunctionalInterface μ΄λ Έν μ΄μ μ΄ λΆμ΄μλ μΈν°νμ΄μ€λ₯Ό λ§ν©λλ€. μλ₯Ό λ€λ©΄ Runnable, Callable, Comparator λ±μ΄ μμ΅λλ€.
ν¨μν νλ‘κ·Έλλ°μ μ΄λ¬ν κ°λ λ€μ μ½λλ₯Ό κ°κ²°νκ² λ§λ€μ΄μ£Όκ³ , λ³λ ¬ μ²λ¦¬μ κ°μ μ±λ₯ ν₯μμ λλͺ¨ν©λλ€. Javaμμλ ν¨μν νλ‘κ·Έλλ°μ κΈ°μ‘΄ μ½λμ μ‘°ν©νμ¬ μ¬μ©ν μ μμΌλ©°, Java 8 μ΄ν λ²μ μμλ μ΄λ¬ν κ°λ μ΄ λμ± νμ₯λκ³ ν₯μλμμ΅λλ€.
ν¨μμ λ©μλμ μ°¨μ΄
- 근볡μ μΌλ‘λ λμΌνμ§λ§ ν¨μλ μΌλ°μ μΈ μ©μ΄μ΄κ³ λ©μλλ κ°μ²΄μ§ν₯κ°λ μ μ©μ΄
- ν¨μλ ν΄λμ€μ λ 립μ , λ©μλλ ν΄λμ€μ μ’ μμ
A functional interface is an interface that contains only one abstract method. They can have only one functionality to exhibit. From Java 8 onwards, lambda expressions can be used to represent the instance of a functional interface. A functional interface can have any number of default methods.
'Programming > Java' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
28 Stream (0) | 2024.01.21 |
---|---|
26 Thread (1) | 2024.01.21 |
25 Generics (1) | 2024.01.21 |
24 Enum (0) | 2024.01.21 |
23 Annotation (1) | 2024.01.21 |
λκΈ