Item 26. Raw Type
Raw Typeμ μ¬μ©νμ§ λ§λΌ
μ λ€λ¦ νμ
μ μ μνκ² λλ©΄ 맀κ°λ³μ νμ
μ΄ μ μλμ§ μμ Raw Typeμ΄λΌλ κ²μ΄ μκΈ°κ² λλ€.(List<E>
-> List
)
μ΄λ¬ν Raw Typeμ μλμ κ°μ΄ κ·Έλ₯ μ¬μ©νκ² λλ©΄ μ»΄νμΌλ¬λ κ²½κ³ λ₯Ό λμ°κ² λλ€.(κ·Έλ§νΌ μνν μν° ν¨ν΄)
νμ§λ§ μμ νμ λ³νμ μλνμ¬ ν λΉνλ €κ³ νλ κ²½μ°μ μ»΄νμΌμ μ±κ³΅νκ³ , λ°νμ μλ¬κ° λ°μνλ μ¬κ°ν λ¬Έμ κ° λ°μνλ€. ν΄κ²° λ°©λ²μ κ°λ¨νκ²λ μ λ€λ¦ νμ μ μ¬μ©νμ¬ μ»΄νμΌλ¬μκ² νμ μ κ°μ νλλ‘ νλ©΄ λλ€.
μ΄μ²λΌ Raw Typeμ μ λ€λ¦ νμ μ μ¬μ©νμ§ μκ³ μ¬μ©νκ² λλ©΄ μμ±ν μ μλλ°, μ λ μ¨μλ μ λλ νμ μ΄λ€. νμ§λ§ μ»΄νμΌλ¬ μμμ Raw Typeμ νμ©νλ μ΄μ λ μ λ€λ¦ νμ μ΄ λμ λκΈ° μ μ μ¬μ©νλ μ½λμμ νΈνμ±μ μν΄ λμ λ κ²μ΄λ μ¬μ©νμ§ μλ κ²μ΄ μ’λ€.
List
vs List<Object>
List
vs List<Object>
Objectλ λͺ¨λ ν΄λμ€μ μ΅μμ ν΄λμ€μ΄κΈ° λλ¬Έμ List
κ°μ Raw Typeκ³Ό λμΌνκ² λμνλ€κ³ μκ°ν μ μμ§λ§, μ€μ λ‘λ μ°¨μ΄κ° μλ€.
List
: νμ μ μμ ν 체ν¬νμ§ μμList<Object>
: λͺ¨λ νμ μ νμ©νλ€λ μμ¬λ₯Ό λͺ νν μ μ, νμ μ 체ν¬
μλ μμ μ½λλ₯Ό 보면 List
λ List<String>
μ λ겨 λ°μ μ μμ§λ§, List<Object>
λ List<String>
μ λ겨 λ°μ μ μλ€.
μ΄λ μ λ€λ¦ νμ νμ
κ·μΉμ μν΄ List<String>
μ List<Object>
μ νμ νμ
μ΄ μλκΈ° λλ¬Έμ΄λ€.
Wildcard Type(μμΌλμΉ΄λ νμ
)
Raw Typeμ μ¬μ©νλ©΄ λͺ¨λ νμ
μ νμ©ν μ μμ§λ§, μ΄λ μνν λ°©λ²μ΄λ€.
List<Object>
κ°μ΄ μ¬μ©νλ κ²μ μ λ€λ¦ νμ νμ
κ·μΉμ μν΄ List<String>
μ λ겨 λ°μ μ μκΈ° λλ¬Έμ λͺ¨λ νμ
μ νμ©νλ λ°©λ²μ΄ μλλ€.
μ΄λ₯Ό ν΄κ²°νκΈ° μν΄ ?
λ₯Ό μ¬μ©ν μμΌλμΉ΄λ νμ
μ μ¬μ©νλ©΄ λλ€.
Raw Typeμ νμ 체ν¬λ₯Ό μ ν νκ³ μμ§ μμ, μ μ νμ§ μμ νμ μ λ겨 λ°μλ μ»΄νμΌ μλ¬κ° λ°μνμ§ μλλ€. νμ§λ§ μμΌλμΉ΄λ νμ μ νμ 체ν¬λ₯Ό νκ³ μκΈ° λλ¬Έμ λ°νμ μλ¬λ₯Ό λ°©μ§ν μ μλ€.
Raw Typeμ μ¬μ©νλ κ²½μ°
Raw Typeμ μ§μ μ μΌλ‘ μ¬μ©νλ κ²½μ°λ μμ΄μλ μλμ§λ§ μλμ κ°μ κ²½μ°μλ Raw Typeμ μ¬μ©ν΄μΌνλ€.
class 리ν°λ΄:
List.class
,String[].class
,int.class
λ νμ©λμ§λ§List<String>.class
λ νμ©λμ§ μμinstanceof μ°μ°μ:
instanceof List<String>
μ νμ©λμ§ μμλ°νμμλ μ λ€λ¦ νμ μ λ³΄κ° μ§μμ§κΈ° λλ¬Έμ μ¬μ©ν μ μμ
Last updated
Was this helpful?