1-5. 제네릭 문제 풀이

shin·2024년 6월 30일

문제1 - 제네릭 기본

문제 설명

  • 다음 코드와 실행 결과를 참고해서 Container 클래스를 만들어라
  • Container 클래스는 제네릭을 사용해야 함
package generic.test.ex1;

public class ContainerTest {

	public static void main(String[] args) {

 		Container<String> stringContainer = new Container<>();
 		System.out.println("빈값 확인1: " + stringContainer.isEmpty());
        
        stringContainer.setItem("data1");
 		System.out.println("저장 데이터: " + 		stringContainer.getItem());
 		System.out.println("빈값 확인2: " + stringContainer.isEmpty());
		
        Container<Integer> integerContainer = new Container<>();
        integerContainer.setItem(10);
 		System.out.println("저장 데이터: " + integerContainer.getItem());
        
    }
}

실행 결과

값 확인1: true
저장 데이터: data1
빈값 확인2: false
저장 데이터: 10

정답 - Container 클래스

package generic.test.ex1;

public class Container<T> {
	
    private T item;
    
    public void setItem(T item) {
    	this.item = item;
    }
    
    public T getItem() {
    	return item;
    }
    
    public boolean isEmpty() {
    	return item == null;
    }
    
}

문제2 - 제네릭 기본

문제 설명

  • 다음 코드와 실행 결과를 참고해서 Pair 클래스를 만들어라
  • Pair 클래스는 제네릭을 사용해야 한다
package generic.test.ex2;

public class PairTest {

	public static void main(String[] args) {
    
 		Pair<Integer, String> pair1 = new Pair<>();
        pair1.setFirst(1);
        pair1.setSecond("data");
 		
        System.out.println(pair1.getFirst());
 		System.out.println(pair1.getSecond());
 		System.out.println("pair1 = " + pair1);
        
 		Pair<String, String> pair2 = new Pair<>();
        pair2.setFirst("key");
        pair2.setSecond("value");
 		
        System.out.println(pair2.getFirst());
 		System.out.println(pair2.getSecond());
 		System.out.println("pair2 = " + pair2);
        
    }
    
}

실행 결과

1
data
pair1 = Pair{first=1, second=data}
key
value
pair2 = Pair{first=key, second=value}

정답 - Pair 클래스

package generic.test.ex2;

public class Pair<T1, T2> {

	private T1 first;
    private T2 second;
    
    public void setFirst(T1 first) {
    	this.first = first;
    }
    
    public void setSecond(T2 second) {
    	this.second = second;
    }
    
    public T1 getFirst() {
    	return first;
    }
    
    public T2 getSecond() {
    	return second;
    }
    
    @Override
    public String toString() {
    	return "Pair{" + "first=" + first + ", second=" + second + "}";
    }
    
 }


강의 출처 : 김영한의 실전 자바 - 중급 2편

profile
Backend development

0개의 댓글