본문 바로가기

Java

JAVA) 제네릭

1. 제네릭 Generic <T>

 

- 자바의 <>안에 들어가는 자료형에 대한 기능.

- List<String> strli = new ArrayList<>();

- List<Object> obli = new ArrayList<>();에서 li의 기능은 같지만 담는 내용물은 다름.

 

- 클래스를 지정할 때 제네릭 <T>를 지정하면, 객체를 생성할 때 타입을 지정할 수 있다.

 

public class GenericEx1 {
T ob;

public T getOb() {
return ob;
}

public void setOb(T ob) {
this.ob = ob;
}


public static void main(String[] args) {
GenericEx1 m = new GenericEx1<>();
m.setOb("홍길동");
System.out.println("값 : " + m.getOb());

GenericEx1 i = new GenericEx1<>();
i.setOb(123);
System.out.println("값 : " + i.getOb());
}

}

 

 

 

 

2. 제네릭 <?>

 

- <T>로 지정된 제네릭은 객체가 만들어 질 때 자료형을 결정.

- 객체를 구현할 떄 <?>로 지정하면 들어오는 값에 따라 자동으로 자료형이 결정됨.

 

public class GenericEx2 {
T ob;

public GenericEx2(T ob) {
this.ob = ob;
}

public T getOb() {
return ob;
}

public void setOb(T ob) {
this.ob = ob;
}



public static void main(String[] args) {
GenericEx2<?> m = new GenericEx2("호랑이");
System.out.println("동물명 : " + m.getOb());
//m.getOb("기린"); //<?>는 생성자를 통해서만 값이 들어옴


m = new GenericEx2(123);
System.out.println("값 : " + m.getOb());
}
}

'Java' 카테고리의 다른 글

Arrays.asList()  (0) 2020.12.06
Google Java Style Guide(번역)  (0) 2020.11.28
Java 접근지정자  (0) 2020.11.08
JAVA) collection - Map  (0) 2020.03.24
JAVA) 랜덤함수  (1) 2020.03.24