반응형
Generic Types (The Java™ Tutorials > Learning the Java Language > Generics (Updated))
The Java Tutorials have been written for JDK 8. Examples and practices described in this page don't take advantage of improvements introduced in later releases and might use technology no longer available. See Java Language Changes for a summary of updated
docs.oracle.com
제네릭(Generic)
클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 기법
의미를 해석하자면 데이터의 타입(data type)을 일반화한다(generalize)는 것이다.
데이터 형식에 의존하지 않고, 하나의 값이 여러 다른 데이터 타입들을 가질 수 있어
재사용성을 높일 수 있는 프로그래밍 방식
타입이 안전하다는 장점과 코드의 중복을 제거하는 편의성이라는 두 마리 토끼를 잡기 위해 도입
- 클래스나 메소드 내부에서 사용되는 객체의 타입 안정성을 높일 수 있다.
- 반환값에 대한 타입 변환 및 타입 검사에 들어가는 노력을 줄일 수 있다.
Type Parameter Naming Conventions
- E - Element (Java Collections Framework에서 자주 사용)
- K - Key
- N - Number
- T - Type
- V - Value
- S,U,V etc. - 2nd, 3rd, 4th types
코딩교육 티씨피스쿨
4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등
tcpschool.com
class MyArray<T> {
T element; // T는 타입변수(type variable)로 임의의 참조형 타입을 의미
void setElement(T element) {
this.element = element;
}
T getElement() {
return element;
}
}
MyArray<Integer> myArr = new MyArray<Integer>();
- 자바에서 타입 변수 자리에 사용할 실제 타입을 명시할 때
기본 타입을 사용할 수 없기 때문에 wrapper class 사용한다. - Java SE7 부터 인스턴스 생성 시 타입을 추정할 수 있는 경우엔 타입을 생략 가능
MyArray<Integer> myArr = new MyArray<>();
반응형
'활동 > 호기심' 카테고리의 다른 글
String.valueOf()와 Integer.toString() 차이점은 Null 값 처리 (0) | 2023.08.23 |
---|---|
해시함수 정리 (Hash 충돌 발생 원인과 해결방법 / Hash Table과 Hash Map 차이점) (0) | 2023.08.22 |
chatGPT와 함께 공부하는 GROUP BY와 HAVING절은 무조건 같이 와야 하는가? (0) | 2023.06.07 |
정처기 공부하다 빠져버린 FIFO 페이지 교체 알고리즘의 늪 (페이지 부재(page fault) 횟수 문제 완벽 이해) (0) | 2023.05.09 |
자바에서 클래스 멤버와 인스턴스 멤버.. 진짜 뭔소린지 하나도 모르겠네 (0) | 2023.04.09 |