π‘ μ λ€λ¦μ λ°μ΄ν°μ νμ μ μΌλ°ννλ€λ μλ―Έλ₯Ό κ°μ§λ€.
μ λ€λ¦μ€λ₯Ό νμ©νλ μ λ€λ¦ ν΄λμ€λ μ λ€λ¦ νμ (T, E, K, V)μ νμ©νμ¬ νλμ ν΄λμ€λ‘ ν΄λΉ μ λ€λ¦ νμ μ λ³νλ₯Ό μ€μ μ λ€λ¦ ν΄λμ€μ μΈμ€ν΄μ€λ₯Ό λ€μν νμ μ μ§λ μΈμ€ν΄μ€λ‘ νμ©ν μ μλ€.
public class GenericTest<T> {
private T value;
public T getValue() {
return value;
}
public void setValue(T value) {
this.value = value;
}
}
// μ λ€λ¦ ν΄λμ€μ T(νμ
)μ ν΄λΉνλ λΆλΆμ΄ λͺ¨λ Integerλ‘ λ³νλλ€.
GenericTest<Integer> gt = new GenericTest<Integer>();
π‘ νλμ ν΄λμ€λ§ μμ±ν΄λ μ¬λ¬ νμ μ νλ κ°μ κ°μ§ ν΄λμ€λ‘ λ³νν΄μ λ€λ£° μ μμ΄ κ΅¬νμ νΈμμ±μ΄ μλ€.
μ λ€λ¦μ μ μ©ν ν΄λμ€λ νμ μ λͺ νν μκ³ μ°κΈ° λλ¬Έμ ν΄λΉ μ λ€λ¦ ν΄λμ€μ νλ νμ μ΄λ λ©μλμ λ§€κ°λ³μλ λ°ννμ μκ³ μ¬μ©νκΈ° λλ¬Έμ μλ£νμ μμ μ±μ΄ λλ€.
π‘ μ λ€λ¦ ν΄λμ€μ μΈμ€ν΄μ€λ₯Ό μ μ°νκ² νμ©νκΈ° μν λ¬Έλ²μ΄λ€. λ©μλμ λ§€κ°λ³μλ‘ λ°μ μ νμ μ μνλ λ§νΌμΌλ‘ μ ννλ κ²μΌλ‘ λΆνΉμ ν μ λ€λ¦ ν΄λμ€ νμ μ μ‘°κΈ λ νμ©ν μ μλ€.
- \<?>: λͺ¨λ νμ μ νμ©νλ μμΌλ μΉ΄λ
- \<? extends T>: T νμ λλ Tμ νμ νμ μ νμ©νλ μμΌλ μΉ΄λ
- \<? super T>: T νμ λλ Tμ μμ νμ μ νμ©νλ μμΌλ μΉ΄λ