본문 바로가기

Java/java 기초

Generic(제네릭)

자료형을 나중에 선언하는 방식 (어떤값이 들어갈 지 모르기떄문에 사용)

package main;

public class GenericClass {
	
	public static void main(String[] args) {
//		
//		Generic == template
//		자료형을 나중에 설정하기 
//		
		Box<Integer> box = new Box<Integer>(234); //Wrapper Class만 가능하다 int x Integer
		System.out.println(box.getTemp());
		
		Box<String> sbox = new Box<String>("my world");
		System.out.println(sbox.getTemp());
		
		BoxMap<Integer, String> bm = new BoxMap<Integer, String>(123, "hi hello");
		
		System.out.println(bm.getKey());
		System.out.println(bm.getValue());
	}
}

// Generic == 자료형의 변수
class Box<T>{
	
	T temp;
	
	public Box(T temp) {
		this.temp = temp;
	}

	public T getTemp() {
		return temp;
	}

	public void setTemp(T temp) {
		this.temp = temp;
	}
	
	
	
}

class BoxMap<K, V>{
	K key;
	V value;
	
	public BoxMap(K key, V value) {
		this.key = key;
		this.value = value;
	}

	public K getKey() {
		return key;
	}

	public void setKey(K key) {
		this.key = key;
	}

	public V getValue() {
		return value;
	}

	public void setValue(V value) {
		this.value = value;
	}
	
	
	
}