μ λ€λ¦μ€(Generics)λ μλ°μμ 컬λ μ ν΄λμ€μ κ΄λ ¨λ μ½λμ νμ μμ νκ² λ§λ€μ΄μ£Όλ κΈ°λ₯μ λλ€. μ λ€λ¦μ€λ₯Ό μ¬μ©νλ©΄ μ»΄νμΌλ¬κ° μ½λμμ λ°μν μ μλ νμ κ΄λ ¨ μ€λ₯λ₯Ό μ¬μ μ κ²μΆν μ μμ΄ μμ μ±μ λμΌ μ μμ΅λλ€.
μ λ€λ¦μ€ λμ μ΄μ
μ λ€λ¦μ€κ° μλ μν©μμλ 컬λ μ κ³Ό κ΄λ ¨λ ν΄λμ€λ₯Ό μ¬μ©ν λ νμ μμ μ±μ΄ λ¨μ΄μ§ μ μμ΅λλ€. μ λ€λ¦μ€κ° λμ λκΈ° μ μλ 컬λ μ ν΄λμ€λ€μ΄ Objectλ₯Ό κΈ°λ°μΌλ‘ λμνμκΈ° λλ¬Έμ μ΄λ€ νμ μ κ°μ²΄λ μ μ₯ν μ μμμ΅λλ€. μ΄λ‘ μΈν΄ λͺ κ°μ§ λ¬Έμ κ° λ°μν μ μμ΅λλ€.
1) νμ μμ μ±μ΄ λ¨μ΄μ§
2) νλ³νμ λ°νμ μλ¬ λ°μ
μ λ€λ¦μ€λ₯Ό μ¬μ©νκΈ° μ μ λ¬Έμ μ λ€μ μ΄ν΄λ³΄λ©΄ μ»΄νμΌλ¬λ λ°μ΄ν°μ νμ μ νμΈνμ§ μλλ€λ μ¬μ€μ μ μ μμ΅λλ€. κ·Έμ λͺ¨λ Object νμ μΌλ‘ νλ¨ν΄λ²λ¦¬λ λ°μνλ λ¬Έμ μ λ€μΈ κ²μ΄μ£ .
μ λ€λ¦μ€κ° λμ λλ©΄μ μ΄λ¬ν λ¬Έμ λ€μ ν΄κ²°ν μ μμ΅λλ€. μ λ€λ¦μ€λ₯Ό μ¬μ©νλ©΄ 컬λ μ μ μ μ₯νλ λ°μ΄ν°μ νμ μ΄ λ―Έλ¦¬ μ§μ λμ΄ μ»΄νμΌλ¬κ° μ΄λ₯Ό κ°μ νκ² λ©λλ€. μ΄λ‘μ¨ λ°νμμ λ°μν μ μλ νλ³ν μ€λ₯λ λΆμΌμΉλ νμ μ κ°μ΄ μ μ₯λλ λ¬Έμ λ₯Ό μ¬μ μ λ°©μ§ν μ μμ΅λλ€.
μ λ€λ¦μ€ μ¬μ©μ μ΄μ
- νμ μμ μ± (Type Safety): μ»΄νμΌλ¬κ° νμ μ κ°μ νλ―λ‘, λ°νμμ λ°μν μ μλ νμ κ΄λ ¨ μ€λ₯λ₯Ό μ»΄νμΌ λ¨κ³μμ μ¬μ μ λ°©μ§ν μ μμ΅λλ€.
- μ½λμ μ¬μ¬μ©μ±κ³Ό μΌλ°ν: μ λ€λ¦μ€λ₯Ό μ¬μ©νλ©΄ λ€μν λ°μ΄ν° νμ μ λν΄ λμΌν μ½λλ₯Ό μ¬μ¬μ©ν μ μμ΅λλ€.
- μΊμ€ν μ λΆνμ: μ λ€λ¦μ€λ₯Ό μ¬μ©νλ©΄ λ°μ΄ν°λ₯Ό κ°μ Έμ¬ λ νλ³νμ΄ νμνμ§ μμ μ½λκ° κ°κ²°ν΄μ§λλ€.
μ λ€λ¦μ€λ JDK 1.5 λ²μ λΆν° λμ λ λ¬Έλ²μΌλ‘ μ£Όλ‘ μ»¬λ μ νλ μμν¬μμ λ§μ΄ μ¬μ©λλ©°, ν΄λμ€, μΈν°νμ΄μ€, λ©μλ λ±μμ μ μ©λ μ μμ΅λλ€.
Generics is a concept in Java where you can enable a class, interface and, method, accept all (reference) types as parameters. In other words it is the concept which enables the users to choose the reference type that a method, constructor of a class accepts, dynamically.
'Programming > Java' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
27 Functional Interface (feat. Lambda) (1) | 2024.01.21 |
---|---|
26 Thread (1) | 2024.01.21 |
24 Enum (0) | 2024.01.21 |
23 Annotation (1) | 2024.01.21 |
22 throw & throws (0) | 2024.01.21 |
λκΈ