// 제너릭:
// --> 코드의 재사용성과 타입 안정성(type safety)을 향상시키는 도구
// --> 다양한 데이터 타입을 처리하는 클래스나 메서드를 작성할 때 사용
// 활용
// 1. 클래스 제너릭: 클래스에 대한 타입 매개변수를 사용하여 클래스 내부에서 다양한 타입의 데이터를 처리할 수 있게 함
//ex) ArrayList<T>와 같이 제너릭 클래스를 사용하여 다양한 타입의 요소를 저장할 수 있는 동적 배열을 생성할 수 있음
ArrayList<Integer> integerList = new ArrayList<>();
ArrayList<String> stringList = new ArrayList<>();
// 2. 메서드 제너릭: 메서드에 대한 타입 매개변수를 사용하여 메서드 내에서 동적으로 데이터 타입을 처리할 수 있게 함
// ex) Collections.sort()와 같이 제너릭 메서드를 사용하여 다양한 타입의 객체를 정렬할 수 있음
public static <T extends Comparable<T>> void sort(List<T> list) {} // 리스트 정렬
class AAA<QQQQQ>{
// type을 인스턴스 생성시 지정하고 싶다?
QQQQQ v1;
boolean v2;
}
class A1{
int v1;
boolean v2;
}
class A2{
double v1;
boolean v2;
}
class A3{
String v1;
boolean v2;
}
AAA<Integer> a1 = new AAA<Integer>();
// <QQQQQ> --> 이게 Integer로 되는거지
a1.v1 = 10;
AAA<String> a2 = new AAA<String>();
a2.v1 = "이제는 String이됐지";
// a2.v1 = 10; --> 이제 이거 안된다구~!
AAA<Scanner> a3 = new AAA<Scanner>();
a3.v1 = new Scanner(System.in); // 이것도된다는거야.
'JAVA > DAY 18 _ 23.09.11' 카테고리의 다른 글
Generic3 (0) | 2023.09.11 |
---|---|
Generic2 (0) | 2023.09.11 |
Integer Class (0) | 2023.09.11 |
Wrapper Class2 (0) | 2023.09.11 |
Wrapper Class (0) | 2023.09.11 |