728x90
반응형
SMALL
개요
- class, interface같은 타입이나 메소드에 정의됨
- 파라미터 다형성을 구현 (구체적이지 x)
- 안정성 부여
- 특정 타입에 국한x
- 컴파일 시 오류 발견 불가능
- Generic : 다양한 타입에 적용할 수 있도록 지원이 가능함
- 버블정렬 같은 알고리즘에도 구현 가능함
[제네릭이 적용되지 않는 경우]
●전역 변수가 다양한 타입을 처리할 수 있어야 할 때 : java.lang.Object 로 선언
-> 자바에서는 기본 데이터 타입을 제외한 모든 타입은 object의 서브 타입이기 때문
●데이터를 사용해야 할 때 : 클래스 인스턴스 타입으로 변환
타입 선언 방법[일반 타입]
- 타입 파라미터가 1개일 때
public class book<T>{
private T note;
public void set(T note){
this.note = note;
}
public T get() {
return this.note;
}
}
- 타입 파라미터가 2개일 때 <> 안에 두개 선언
public class book<T,V>{
private T note;
private V paper;
public void set(T note, V paper){
this.note = note;
this.paper = paper;
}
public T get() {
return this.note;
}
public V paper() {
return this.paper;
}
}
타입 선언 방법[제네릭 타입]
- 제네릭 타입 생성자는 타입 파라미터를 사용x
public class book<T>{
T note;
public note(T note){
this.note = note;
}
public T get() {
return this.note;
}
}
제네릭 메소드 선언
- 타입 파라미터 목록을 가지고 선언
- 메소드 호출할 때 메소드 이름 앞에 <> 기호로 선언
타입 파라미터 명명 규칙
- T(ype) : 타입
- K(ey) : 키
- N(umber) : 숫자
- V(alue) : 값
- E(lement) : 요소
728x90
반응형
LIST
'스마트인재개발원 > 자바' 카테고리의 다른 글
[JAVA] 람다 식 정의 & 구현 / 코드 예시 (1) | 2022.08.02 |
---|---|
[JAVA] 오류3 - Exception in thread "main" java.nio.fie.InvalidPathException / file not found (0) | 2022.08.02 |
[JAVA] swap 버블정렬(bubble sort)/generic을 사용한 버블정렬 (0) | 2022.07.30 |
[vscode-java] 오류2 - JDK 설치 및 환경설정 (0) | 2022.07.30 |
[vscode-java] 오류1 - Configure Runtime for Language Server (0) | 2022.07.29 |