본문 바로가기

JAVA/DAY 18 _ 23.09.11

Generic

//  제너릭:  
// --> 코드의 재사용성과 타입 안정성(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