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

jfk6725님의 프로필 이미지

작성한 질문수

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

HTTP 요청 파라미터 - @ModelAttribute

파라미터를 Map으로 조회하기 관련 질문

작성

·

124

0

map<string, object>와 map<string, string> 모두 정상 수행이 됩니다. 받아들인 변수를 처리하는데 차이가 있을까요?

public String requestParamMap(@RequestParam Map<String, Object> paramMap){
public String requestParamMap(@RequestParam Map<String, String> paramMap){

답변 1

0

안녕하세요. jfk6725님, 공식 서포터즈 y2gcoder입니다.

당연한 설명을 하자면 요청 파라미터의 값을 String으로 받을지, Object로 받을지에 대한 차이가 있을 것입니다.

String으로 받았을 때는 값의 타입이 String으로 고정된다는 점이 있을 것이고, Object로 받았을 때는 모든 참조형의 부모 클래스인 Object로 받았으니 어떤 타입의 값도 받을 수 있다는 점이 특징일 것 같습니다. 이론적으로는 Object 타입이 다형적 참조에 의해 모든 타입을 품을 수 있어 더 유연하다, String 타입은 문자열로 파라미터의 값이 고정되기 때문에 더 단순하다(타입 변환을 고려할 필요가 없다면) 는 등의 특징이 있을 것 같습니다.

실제로 실무에서는 파라미터의 각 값들을 적절한 타입으로 변환해주는 경우가 많고, 위의 두 케이스 모두 타입 변환을 해줘야 한다는 점에서는 똑같을 것 같습니다. 다만 String 타입에서 다른 타입으로 변환하는 것과 Object x타입에서 다른 타입으로 캐스팅해주는 방법의 차이가 있을 수 있겠습니다.

 

감사합니다.

jfk6725님의 프로필 이미지

작성한 질문수

질문하기