item 41 leekyunghee - JAVA-JIKIMI/EFFECTIVE-JAVA3 GitHub Wiki
μ μνλ €λ κ²μ΄ νμ μ΄λΌλ©΄ λ§μ»€ μΈν°νμ΄μ€λ₯Ό μ¬μ©νλΌ
- λ§μ»€ μΈν°νμ΄μ€λ?
μλ¬΄λ° λ©μλλ λ΄κ³ μμ§ μκ³ λ¨μ§ μμ μ ꡬννλ ν΄λμ€κ° νΉμ μμ±μ κ°μ§μ νμν΄μ£Όλ μΈν°νμ΄μ€λ₯Ό λ§νλ€.
- Serializable μΈν°νμ΄μ€(12μ₯) κ° μ’μ μμ΄λ€.
- Serializableμ μμ μ ꡬνν ν΄λμ€μ μΈμ€ν΄μ€λ ObjectOutputStreamμ ν΅ν΄ μΈ(wirte)μ μλ€κ³ μ¦ μ§λ ¬νν μ μλ€κ³ μλ €μ€λ€.
λ§μ»€ μ λν μ΄μ λ³΄λ€ λ§μ»€ μΈν°νμ΄μ€κ° λμ λκ°μ§ μ₯μ
- λ§μ»€ μΈν°νμ΄μ€λ μ΄λ₯Ό ꡬνν ν΄λμ€μ μΈμ€ν΄μ€λ€μ ꡬλΆνλ νμ μΌλ‘ μΈ μ μμΌλ λ§μ»€ μ λν μ΄μ μ κ·Έλ μ§ μλ€.
λ§μ»€ μΈν°νμ΄μ€λ μ΄μΏν νμ μ΄κΈ° λλ¬Έμ λ§μ»€ μ λν μ΄μ μ μ¬μ©νλ€λ©΄ λ°νμμμΌ λ°κ²¬λ μ€λ₯λ₯Ό μ»΄νμΌνμμ μ‘μ μ μλ€.
μλ°μ μ§λ ¬νλ Serializable λ§μ»€ μΈν°νμ΄μ€λ₯Ό λ³΄κ³ κ·Έ λμμ΄ μ§λ ¬νν μ μλ νμ μΈμ§λ₯Ό νμΈνλ€.
- μλ₯Ό λ€μ΄ ObjectOutputStream.wirteObject λ©μλλ λΉμ°ν μΈμλ‘ λ°μ κ°μ²΄κ° Serializableμ ꡬννμ κ±°λΌκ³ κ°μ νλ€. κ·Έλ°λ° μ΄ λ©μλλ Serializableμ΄ μλ Objectκ°μ²΄λ₯Ό λ°λλ‘ μ€κ³λμλ€.
μ¦ μ§λ ¬νλ₯Ό ν μ μλ κ°μ²΄λ₯Ό λ겨λ λ°νμμμΌ λ¬Έμ λ₯Ό νμΈν μ μλ€. λ§μ»€ μΈν°νμ΄μ€λ₯Ό μ¬μ©νλ μ£Όμ μ΄μ κ° μ»΄νμΌνμ μ€λ₯ κ²μΆμΈλ° κ·Έ μ΄μ μ μ΄λ¦¬μ§ λͺ»ν κ²μ΄λ€.
- μ μ© λμμ λ μ λ°νκ² μ§μ ν μ μλ€.
μ μ© λμ(@Target)μ λ μ λ°νκ² μ§μ ν μ μλ€λ κ²μ΄λ€.
μ μ© λμμ ElementType.TypeμΌλ‘ μ μν μ λν μ΄μ μ λͺ¨λ νμ (ν΄λμ€, μΈν°νμ΄μ€, μ΄κ±° νμ , μ λν μ΄μ )μ λ¬ μ μλ€. λΆμ°©ν μ μλ νμ μ λ μΈλ°νκ² μ ννμ§λ λͺ»νλ€λ λ»μ΄λ€.
λ§μ»€ μ λν μ΄μ μ΄ λ§μ»€ μΈν°νμ΄μ€λ³΄λ€ λμ μ
κ±°λν μ λν μ΄μ μμ€ν μ μ§μμ λ°λλ€.
μ λν μ΄μ μ μ κ·Ή νμ©νλ νλ μμν¬μμλ λ§μ»€ μ λν μ΄μ μ μ°λ μͺ½μ΄ μΌκ΄μ±μ μ§ν€λ λ° μ 리ν κ²μ΄λ€.
μ μ© μμ
μ΄λ€ κ²½μ° λ§μ»€ μ λν μ΄μ μ μ¬μ©ν΄μΌ νλκ°?
ν΄λμ€μ μΈν°νμ΄μ€ μΈμ νλ‘κ·Έλ¨ μμ (λͺ¨λ, ν¨ν€μ§, νλ, μ§μλ³μ λ±)μ λ§νΉν΄μΌν λ μ λν μ΄μ μ μΈ μλ°μ μλ€.
- ν΄λμ€μ μΈν°νμ΄μ€λ§μ΄ μΈν°νμ΄μ€λ₯Ό ꡬννκ±°λ νμ₯ν μ μκΈ° λλ¬Έμ΄λ€.
μ΄λ€ κ²½μ° λ§μ»€ μΈν°νμ΄μ€λ₯Ό μ¬μ©ν΄μΌ νλκ°?
λ§μ»€λ₯Ό ν΄λμ€μ μΈν°νμ΄μ€μ μ μ©ν΄μΌ νλ€λ©΄ λ¬Όμ΄λ³΄μ. μ΄ λ§νΉλ κ°μ²΄λ₯Ό 맀κ°λ³μλ‘ λ°μ λ©μλλ₯Ό μμ±ν μΌμ΄ μμκΉ?
-
yes: λ§μ»€μΈν°νμ΄μ€ μ¬μ©. μ»΄νμΌ νμμ μ€λ₯λ₯Ό μ‘μλΌ μ μλ€.
-
no: λ§μ»€μ λν μ΄μ μ¬μ©
ν΅μ¬ μ 리
λ§μ»€ μΈν°νμ΄μ€μ λ§μ»€ μ λν
μ΄μ
μ κ°μμ μ°μμ΄ μλ€.
μλ‘ μΆκ°νλ λ©μλ μμ΄ λ¨μ§ νμ
μ μκ° λͺ©μ μ΄λΌλ©΄ λ§μ»€ μΈν°νμ΄μ€λ₯Ό μ ννμ.
- νμ
μ μ μν κ±°λΌλ©΄ μΈν°νμ΄μ€λ₯Ό μ°λΌ
- νμ
μ μ μν κ² μλλΌλ©΄ μΈν°νμ΄μ€λ₯Ό μ¬μ©νμ§ λ§λΌκ³ ν (μμ΄ν
22) λ΄μ©μ λ°λ