Generic
μ λ€λ¦μ μλ°μμ μμ μ±μ λ§‘κ³ μλ€κ³ ν μ μλ€. λ€μν κ°μ²΄λ€μ λ€λ£¨λ λ©μλλ 컬λ μ ν΄λμ€μμ μ¬μ©νλ κ²μΌλ‘, μ»΄νμΌ κ³Όμ μμ νμ 체ν¬λ₯Ό ν΄μ£Όλ κΈ°λ₯μ΄λ€. κ°μ²΄μ νμ μ μ»΄νμΌ μμ 체ν¬νκΈ° λλ¬Έμ κ°μ²΄μ νμ μμ μ±μ λμ΄κ³ νλ³νμ λ²κ±°λ‘μμ μ€μ¬μ€λ€. μμ°μ€λ½κ² μ½λλ λ κ°κ²°ν΄μ§λ€. μλ₯Ό λ€λ©΄,Collection μ νΉμ κ°μ²΄λ§ μΆκ°λ μ μλλ‘, λλ νΉμ ν ν΄λμ€μ νΉμ§μ κ°κ³ μλ κ²½μ°μλ§ μΆκ°λ μ μλλ‘ νλ κ²μ΄ μ λ€λ¦μ΄λ€. μ΄λ‘ μΈν μ₯μ μ collection λ΄λΆμμ λ€μ΄μ¨ κ°μ΄ λ΄κ° μνλ κ°μΈμ§ λ³λμ λ‘μ§μ²λ¦¬λ₯Ό ꡬνν νμκ° μμ΄μ§λ€. λν apiλ₯Ό μ€κ³νλλ° μμ΄μ λ³΄λ€ λͺ νν μμ¬μ λ¬μ΄ κ°λ₯ν΄μ§λ€.
Why Use Generics?
κ°λ¨ν λ§ν΄μ μ λ€λ¦μ ν΄λμ€, μΈν°νμ΄μ€ λ° λ©μλλ₯Ό μ μν λ νμ (ν΄λμ€ λ° μΈν°νμ΄μ€)μ΄ λ§€κ° λ³μκ° λλλ‘ ν©λλ€. λ©μλ μ μΈμ μ¬μ©λλ λ³΄λ€ μΉμν νμ λ§€κ°λ³μμ λ§μ°¬κ°μ§λ‘ νμ λ§€κ°λ³μλ μ λ ₯μ΄ λ€λ₯Έ λμΌν μ½λλ₯Ό μ¬μ¬μ©ν μ μλ λ°©λ²μ μ 곡ν©λλ€. νμ λ§€κ°λ³μμ λν μ λ ₯μ κ°μΈ λ°λ©΄ νμ λ§€κ°λ³μμ λν μ λ ₯μ νμ μ΄λΌλ μ°¨μ΄μ μ΄ μλ€.
μ λ€λ¦μ μ¬μ©νλ μ½λλ μ λ€λ¦μ΄ μλ μ½λμ λΉν΄ λ§μ μ΄μ μ΄ μμ΅λλ€.
1. μ»΄νμΌ νμμ λ κ°λ ₯ν μ ν κ²μ¬
Java μ»΄νμΌλ¬λ μΌλ° μ½λμ κ°λ ₯ν νμ κ²μ¬λ₯Ό μ μ©νκ³ μ½λκ° νμ μμ μ μλ°νλ κ²½μ° μ€λ₯λ₯Ό λ°μμν΅λλ€. μ»΄νμΌ νμ μ€λ₯λ₯Ό μμ νλ κ²μ΄ μ°ΎκΈ° μ΄λ €μΈ μ μλ λ°νμ μ€λ₯λ₯Ό μμ νλ κ²λ³΄λ€ μ½μ΅λλ€.
2. casts μ κ±°
μ λ€λ¦μ΄ μλ λ€μ μ½λ μ€λν«μ castingμ΄ νμν©λλ€.
μ λ€λ¦μ΄ μ¬μ©νλλ‘ λ€μ μμ±ν λ μ½λλ μΊμ€ν μ΄ νμνμ§ μμ΅λλ€.
3. νλ‘κ·Έλλ¨Έκ° μΌλ° μκ³ λ¦¬μ¦μ ꡬνν μ μλλ‘ ν©λλ€.
μ λ€λ¦μ μ¬μ©νμ¬ νλ‘κ·Έλλ¨Έλ λ€μν μ νμ 컬λ μ μμ μλνκ³ μ¬μ©μ μ μν μ μμΌλ©° μ νμ΄ μμ νκ³ μ½κΈ° μ¬μ΄ μ λ€λ¦ μκ³ λ¦¬μ¦μ ꡬνν μ μμ΅λλ€.
Generic Types
μ λ€λ¦ νμ μ νμ μ λν΄ λ§€κ° λ³μνλλ μ λ€λ¦ ν΄λμ€ λλ μΈν°νμ΄μ€μ΄λ€.
A Generic Version of the Box Class
Type Parameter Naming Conventions
The most commonly used type parameter names are:
E - Element (used extensively by the Java Collections Framework)
K - Key
N - Number
T - Type
V - Value
S,U,V etc. - 2nd, 3rd, 4th types
Multiple Type Parameters Example
Reference
Last updated
Was this helpful?