HihoBookStudy / EffectiveJava

이펙티브 자바 북스터디입니다.
1 stars 0 forks source link

[Item6] 예시로 등장한 keySet에 대하여 #14

Closed IAGREEBUT closed 3 months ago

IAGREEBUT commented 3 months ago

item6를 공부하면서, 그리고 어제 강의해주신 내용을 들으면서 keySet에서 나온 예시가 무슨 뜻인지는 이해가 가는데 직접 눈으로 보지 않고는 약간 의심스러워서 ㅎㅎ.. 코드로 직접 확인해보았습니다

구현된 Map객체의 keySet 메소드를 이용하여 생성한 Set 객체는 keySet을 여러번 사용하여 새로운 변수에 할당하여도 동일한 주소값을 가지고 있었으며(인스턴스가 하나) Map객체가 변경되면 별다른 추가 조치를 취해주지 않아도 연동되어 변경됨을 확인할 수 있었습니다.

<자세한 코드> item6 - keySet

뜬금없지만 사실 저는 실제로 스프링을 이용한 코드를 작성할때 특정 User객체의 닉네임을 변경하면서, 닉네임 변경 히스토리를 생성해두기 위해서

user u = 원하는 유저를 가져옴
user updatedUser = u.updateNickname("newNickName");

이런식으로 코드를 짠 후에

u.nickName //oldNickname 일거라고 예상했으나 newNickName 이었음 
updatedUser.nickName//newNickName

의 값이 다를 거라고 가정하고 코드를 짰다가 히스토리 기록을 망친 경험이 있습니다 ...