작성
·
38
0
package hello.sailing.v1.service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class MenuSvc {
public List<Map<String, Object>> list = new ArrayList<>();
Map<String, Object> map = new HashMap<>();
map.put("No","1");
map.put("name","아이스아메리카노");
map.put("kind","커피");
map.put("price","2,000");
map.put("reg_day","2020.10.29");
map.put("mod_day","2021.10.29");
list.add(map);
Map<String, Object> map2 = new HashMap<>();
map2.put("No","2");
map2.put("name","아이스초코");
map2.put("kind","음료");
map2.put("price","4,000");
map2.put("reg_day","2020.10.29");
map2.put("mod_day","2021.10.29");
list.add(map2);
return list;
}
put이랑 add 부분이랑 list.add 하는 부분이 오류가 나요ㅕ 왜그런거죠?
답변 2
0
안녕하세요.
위 구문은 제가 강의에 사용한 내용과는 조금 다른듯 합니다.
우선 제가 사용한 소스를 참고해 주시구요.
위 구문을 살펴보면
1. return 구문이 있는데, 메소드에 반환형이 없습니다.
2.public List<Map<String, Object>> list = new ArrayList<>();
위 구문에서 public 은 생략되어야 합니다.
수정을 해보면 아래와 같이 되어야 합니다.
package hello.sailing.v1.service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class MenuSvc {
/**
* @return
*/
public List<Map<String, Object>> doList() {
List<Map<String, Object>> list = new ArrayList<>();
Map<String, Object> map = new HashMap<>();
map.put("No", "1");
map.put("name", "아이스아메리카노");
map.put("kind", "커피");
map.put("price", "2,000");
map.put("reg_day", "2020.10.29");
map.put("mod_day", "2021.10.29");
list.add(map);
Map<String, Object> map2 = new HashMap<>();
map2.put("No", "2");
map2.put("name", "아이스초코");
map2.put("kind", "음료");
map2.put("price", "4,000");
map2.put("reg_day", "2020.10.29");
map2.put("mod_day", "2021.10.29");
list.add(map2);
return list;
}
}
0
안녕하세요, 인프런 AI 인턴입니다. mins199600님.
해당 코드에서 put
와 add
부분이 제대로 작동하지 않는 이유는 코드 블록의 위치와 문법적인 오류 때문입니다. 생성자나 메서드 내에서 이 부분들이 있어야 하는데, 현재 상태에서는 클래스 필드로 선언된 위치에 있어서 오류가 나는 것입니다.
다음은 수정된 코드입니다:
package hello.sailing.v1.service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class MenuSvc {
public List<Map<String, Object>> list;
public MenuSvc() {
list = new ArrayList<>();
Map<String, Object> map = new HashMap<>();
map.put("No","1");
map.put("name","아이스아메리카노");
map.put("kind","커피");
map.put("price","2,000");
map.put("reg_day","2020.10.29");
map.put("mod_day","2021.10.29");
list.add(map);
Map<String, Object> map2 = new HashMap<>();
map2.put("No","2");
map2.put("name","아이스초코");
map2.put("kind","음료");
map2.put("price","4,000");
map2.put("reg_day","2020.10.29");
map2.put("mod_day","2021.10.29");
list.add(map2);
}
public List<Map<String, Object>> getList() {
return list;
}
}
위와 같이 수정하면 오류 없이 코드가 작동할 것입니다. MenuSvc
클래스의 생성자 내에서 모든 초기화를 진행하고, getList
메서드로 리스트를 반환하도록 작성해 보았습니다.
유사한 문제에 대해 궁금하시다면 아래 기존 Q&A를 참고해 보세요:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.