π λΆλ³ κ°μ²΄λ?
λΆλ³ κ°μ²΄(Immutable Object) λ ν λ² μμ±λλ©΄ λ΄λΆ μνκ° λ³κ²½λμ§ μλ κ°μ²΄λ₯Ό μλ―Έν©λλ€.
β
νΉμ§
- μμ± ν νλ κ° λ³κ²½μ΄ λΆκ°λ₯ν¨
- setter λ©μλλ₯Ό μ 곡νμ§ μμ
- νλλ
finalλ‘ μ μΈνμ¬ λΆλ³μ± μ μ§
- κ° λ³κ²½μ΄ νμν κ²½μ°, μλ‘μ΄ κ°μ²΄λ₯Ό μμ±νμ¬ λ°ν
π λΆλ³ κ°μ²΄μ μ₯μ
- λ΄λΆ μνκ° λ³κ²½λμ§ μμΌλ―λ‘ μμΈ‘ κ°λ₯ν μ½λ μμ±μ΄ κ°λ₯
- μλνμ§ μμ κ° λ³κ²½μ΄λ 곡μ κ°μ²΄ λ¬Έμ λ₯Ό λ°©μ§
- λ©μλκ° κ°μ²΄ μνλ₯Ό λ³κ²½νμ§ μμΌλ―λ‘ μ½λλ₯Ό μ΄ν΄νκΈ° μ¬μ
- λ³κ²½ λ‘μ§μ΄ μμΌλ―λ‘ λλ²κΉ
μ΄ μ©μ΄
- λΆλ³ κ°μ²΄λ ν
μ€νΈμμ ν λ² μμ± ν μ¬λ¬ ν
μ€νΈμμ μ¬μ¬μ© κ°λ₯
- κ°λ³ κ°μ²΄λ μν λ³νλ‘ μΈν΄ ν
μ€νΈκ° 볡μ‘ν΄μ§ μ μμ
π 컬λ μ
λλ κ°μ²΄λ₯Ό λΆλ³μΌλ‘ λ§λλ λ°©λ²
컬λμ
λλ κ°μ²΄λ₯Ό λΆλ³μΌλ‘ λ§λλ €λ©΄??
μλ°μμ final ν€μλλ λ³μλ₯Ό μ¬ν λΉνμ§ λͺ»νλλ‘ μ ννλ μν μ ν©λλ€. νμ§λ§ private final List<Integer> listκ° μλ€κ³ ν΄μ 리μ€νΈ μμ²΄κ° λΆλ³(Immutable)ν κ²μ μλλλ€.
ex) code