지나가다 답변드리자면 정확한건 아니나 responseViewV2가 model을 받으면 인스턴스이기 때문에 참조값을 받겠죠, 받은 model을 이용해서 거기에 데이터를 집어 넣은겁니다. 그렇기에 반환하지 않아도 데이터가 들어가는거구요 template는 그 모델의 똑같은 참조값을 이용해서 값을 끄집어내서 사용한다라고 생각됩니다. 자세한 답변은 공식서포터분들이 해주실꺼라 믿습니다.
public class Test { private static Map store = new HashMap (); public static void main(String[] args) { store.put(1L, new Member("Kakao", Grade.BASIC)); store.put(2L, new Member("Naver", Grade.VIP)); store.put(3L, new Member("NCsoft", Grade.VIP)); store.put(4L, new Member("Nexon", Grade.BASIC)); Member kakao = store.values().stream().filter(member -> member.getName().equals("Kakao")).findAny().orElseThrow(NoSuchElementException::new); System.out.println("kakao = " + kakao); } } 질문의 의도가 뭔지 모르겠습니다.
첫번째는 말그대로 기본 생성자구요 new Student() 했을때 사용되는 사용자입니다. 즉 아이디랑, 네임을 지정하지않고 만들때 불려지는 생성자구요. 두번째 오버로딩된 생성자는 내가 직접 아이디랑 네임을 지정해줘서 Student를 생성할때 사용하는 생성자입니다. new Student(1, "kakao"); 즉 둘의 쓰임새가 다르기때문에 둘 다 존재하는거구요, 필요없으시다면 삭제하셔도 무관합니다.