Home 두 개의 객체를 반환하기
Post
Cancel

두 개의 객체를 반환하기

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;
}
위의 방법이 당연해보이지만, 모르는 상황에서는 쉽게 떠오르지 않는다. 2번 혹은 3번의 방법을 이용하는게 좋을 듯 하다.
This post is licensed under CC BY 4.0 by the author.

Git Blog 생성 에러 (403)

다형성과 추상화