작성
·
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;
}
감사합니다.