인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

Inflearn Community Q&A

eastk2v24930's profile image
eastk2v24930

asked

Java ORM Standard JPA Programming - Basics

Value Type and Immutable Object

setter 관련 질문

Written on

·

292

1

항상 강의 잘 듣고 있습니다

다름이아니라 강의 흐름을 보면 member2.setHomeAddress에서 member2.setHomeAddress(copyAddress)가 아니라

member2.setHomeAddress(address)로 할 경우 이를 막을 방법이 없다가 객체 타입의 한계라고 말씀해주셨는데요

이를 해결하기 위해 불변 객체 말씀을 해주셨는데 불변 객체 예시로 들어주신 것은 Address 라는 값타입의 setter를 없애는 것이었는데요 

Address의 setter를 없애도 똑같이 member2.setHomeAddress(copyAddress)가 아니라

member2.setHomeAddress(address)로 할 경우 참조가 공유되는 문제는 해결 못하지 않나요 ?

JPAjava

Answer 1

1

안녕하세요. 2v2님, 공식 서포터즈 David입니다.

불변객체와 setter를 설명하실 때는 member의 Address 필드 상태를 변경하는 setter가 아니라 Address의 String city 필드 상태를 변경하는 setter에 대해 말하고 있습니다.

흐름상 헷갈릴 수 있으니 위 내용을 인지한 후 다시 강의를 들어보시면 좋을 것 같습니다.

감사합니다.

eastk2v24930님의 프로필 이미지
eastk2v24930
Questioner

답변 감사드립니다

말씀은 이해했습니다. 그럼 Address의 setter 문제가 아니라 확장해서 member에서 객체 타입의 문제( member2.setHomeAddress(copyAddress)가 아니라 member2.setHomeAddress(address)를 호출했을 때 막지 못하는 문제) 해결하기 위해서 멤버의 setter 또한 Address처럼 변경을 해야하는건가요?

네, 맞습니다.

eastk2v24930님의 프로필 이미지
eastk2v24930
Questioner

감사합니다!

eastk2v24930's profile image
eastk2v24930

asked

Ask a question