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

hoje님의 프로필 이미지
hoje

작성한 질문수

나도코딩의 자바 기본편 - 풀코스 (20시간)

제네릭스

제네릭스가 실제로 쓰이는 예시

작성

·

221

0

sts로 mvc 하다가 다시 강의듣기 시작해서 그런지 헷갈려서요. 제네릭스는 어느 경우에 쓰이는 건가요? 프로젝트 할때 HashMap을 썼던 것 같거든요.

 

Controller - jsp (ajax)

@ResponseBody

@PostMapping("/admin/bmember")

public Map<String, Object> bmemberPost(@RequestBody ManagerVO manager){

Map<String, Object> map = new HashMap<String, Object>();

boolean res = managerService.updateManager(manager); // 승인 -> 업데이트 -> bm_approval( 0 -> 1 )

// 동시에 getMakeStore 를 하면서 st_num을 만들고, bm_id값만 넘겨주고, st_approval default값 0이 주어짐 -> storeVO 데이터 저장!

boolean store = storeService.makeStore(manager); // 상점등록 - (st_num) st_bm_id를 이용해서 insert

// => 매장등록 (plusinfo) insert -> update 로 변경.

// map.put("store", store); // 화면단에 store정보를 보낼 필요는 없음. 그냥 일만하러 왔다.

map.put("res", res);

return map;

}

 

답변 1

0

나도코딩님의 프로필 이미지
나도코딩
지식공유자

안녕하세요?

제네릭스는 주로 컬렉션 형식이나 클래스의 타입 안전성을 보장하기 위해 사용되는데요. 위의 코드에서는 Map<String, Object>을 사용하고 있지만, 이는 제네릭스를 사용하지 않은 일반적인 형태의 맵입니다.

강의에서 다루지 않은 코드라 일부만 봤을 때 제네릭스의 사용이 불필요해 보이지만, 타입 매개변수 <T> 를 사용한다면 다음과 같은 방법으로 적용해볼 수 있을 것 같습니다.

@ResponseBody
@PostMapping("/admin/bmember")
public <T> Map<String, T> bmemberPost(@RequestBody ManagerVO manager) {
    Map<String, T> map = new HashMap<>();
    T res = (T) managerService.updateManager(manager);
    map.put("res", res);
    return map;
}

감사합니다.

hoje님의 프로필 이미지
hoje

작성한 질문수

질문하기