인프런 커뮤니티 질문&답변

닉네임님의 프로필 이미지
닉네임

작성한 질문수

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

유연한 컨트롤러2 - v5

스코프 관련 질문이 있습니다.

작성

·

258

0

스코프 관련 궁금한 점이 있습니다.

MemberListController

MemberSaveController같은 경우 내부에 process 함수를 보유하고 있고

public String process(Map<String, String> paramMap, Map<String, Object> model)

인자로 전달받은 model 객에체 

model.put("member", member);

같이 주입을 해 주는데 함수 밖에서도  사용 할 수 있는거 같습니다.

mv.setModel(model);

handle 함수에서 에서 만든 model 객체와

 process 함수에서 쓰인 model 객체는 다른 스코프의 다른

객체가 아닌가요? 

어떻게 사용이 될 수 있는 건가요?

인자로 전달 했고, 전달받은 객체를 변화 시켯지만

함수가 종료 되었는데 그 객체의 스코프가 계속 유지가 되는게

이해가 안되어 질문 드립니다.

물론 아래에 이와같은 질문이 있지만 더욱 더 자세한 설명이 필요해서 질문 드립니다.

 

-- 혹시 Call By Reference 때문인가요?

구글링을 하다보니 저게 의심이 되네요

답변 1

1

안녕하세요. 닉네임님, 공식 서포터즈 David입니다.

자바의 경우 객체를 파라미터로 전달할 수 있습니다. 사실 전달되는 건 객체 자체가 아니라 객체의 참조 값을 넘기는 것이지만요.

이런 이유로 인해 메서드 내에서 전달된 객체의 참조를 통해 객체 내부 상태를 변경한 뒤 메서드가 종료되어도 해당 객체의 상태는 변경된 값을 유지하게 됩니다.

자바 기본 문법에 해당하는 내용이며 링크를 참고해주세요.

감사합니다.

닉네임님의 프로필 이미지
닉네임

작성한 질문수

질문하기