Link Search Menu Expand Document

Generic Multi

Table of contents

  1. Multi Generic

Multi Generic

여러개의 타입변수를 사용할 때

Gereric 예제

public class Product<T, V>{
 
    //Field
	private T kind;
	private V model;
	
    //Setter Getter
	public T getKind() {
		return kind;
	}
	public void setKind(T kind) {
		this.kind = kind;
	}
	public V getModel() {
		return model;
	}
	public void setModel(V model) {
		this.model = model;
	}
	
}

class Car {}
class TV{}

public class ProductMain {
public static void main(String[] args) {
	
    // 타입을 정하지 않고 사용할경우 아래와 같이 뭐든지 다 들어가버림
	Product product = new Product();
	product.setKind("문자열");
	product.setKind(1);
	product.setKind(1.0);
	product.setKind(new Car());
	product.setKind(new TV());
	product.setModel(new Car());
	product.setModel(new TV());

    // 마지막으로 정한값이 무엇인지에 따라 강제형변환을 해줘야함
	product.setKind(1);
	int xx = (int) product.getKind();
	product.setKind("문자열");
	String yy = (String) product.getKind();
	
    // TV객체와 문자열 객체로 선언한 tv
	Product<TV, String> tv = new Product<TV, String>();
	//tv.setKind("문자열");    kind에는 TV객체만 들어갈 수 있음
	//tv.setKind(1);
	//tv.setKind(new Car());
	tv.setKind(new TV());
	tv.setModel("스마트 티비");
	TV tv1 = tv.getKind();             // tv.getKind()에 TV객체가 들어가있는걸 확인
	String tvModel = tv.getModel();    // tv.getModel()에 String이 들어가있는걸 확인
	
    // Car객체와 문자열로 선언한 car
	Product<Car, String> car = new Product<>();
	car.setKind(new Car());
	car.setModel("포르쉐");
	Car car1 = car.getKind();
	String carModel = car.getModel();
	
    // 다양한 방법으로 객체를 생성할 수 있음
	Product<String, String> prod1 = new Product<>();
	Product<String, TV> prod2 = new Product<>();
	Product<String, Car> prod3 = new Product<>();
	Product<String, Integer> prod4 = new Product<>();
	
}
}

이 웹사이트는 jekyll로 제작되었습니다. Patrick Marsceill, Distributed by an MIT license.