11.04
서로 다른 두 객체를 반환해야 하는 경우
return시 두 개의 객체로 반환해야 하는 경우, 어떻게 진행해야할까?
1) List<”Object”>
제일 처음에 썼던 방법으로, 모든 객체들의 모(母)인 Object로 선언한 리스트에 객체들을 담아서 반환한다.
1
2
3
4
5
6
7
8
9
10
11
public List<Object> getMemberAndUser {
List<Object> result = new ArrayList<>();
//member와 user을 가지고 오는 메소드
result.add(member);
result.add(user);
return result;
}
- 꺼내서 사용할때 캐스팅을 해줘야 한다.
- 다른 개발자들이 보기에 어떤 객체가 담겨있는지 한눈에 보이지 않는다.
2) Pair
1
2
3
4
5
6
7
8
9
10
public Pair<User, Member> getMemberAndUser {
//member와 user을 가지고 오는 메소드
Pair<User, Member> result = new Pair<>(user, member);
return result;
}
// 꺼낼때 아래와 같이 꺼낸다.
result.getKey(); // User
result.getValue(); // Member
3) 새로운 객체 만들기
두 객체를 감싸는 새로운 객체를 생성해서 반환한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public MemberAndUser getMemberAndUser {
MemberAndUser result = new MemberAndUser();
//member와 user을 가지고 오는 메소드
MemberAndUser.setUser(user);
MemberAndUser.setMember(member);
return result;
}
@Getter @Setter
public class MemberAndUser {
private Member member;
private User user;
}