일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 17144
- SpringCloudConfig
- Session Registry
- RestControllerAdvice
- Spring Authorization Server
- github
- 12100
- 프로그래머스
- 백준
- HttpRequestMethodNotSupportedException
- self-hosted runners
- tailsamplingprocessor
- ConcurrentSessionControlAuthenticationStrategy
- 15686
- Session Fixation Protection
- Spring Security
- 1916
- aws-mysql-jdbc
- AWS
- 14891
- openTelemetry
- Java
- Spring
- Value annotation
- 자바
- 14889
- amazon-ecr-login
- github actions
- 1260
- RequiredArgsConstructor
Archives
- Today
- Total
한울이
[JAVA] Generics 본문
### Generics
제네릭은 클래스와 인터페이스와 메소드에서 사용할 타입을 클래스 외부에서 설정하여 컴파일 시에 미리 지정하는 방법
### 장점
1. 컴파일 타임에 타입 체크 가능
2. 타입 캐스팅 불필요
3. 특정 타입에 종속되지 않은 유연하게 사용가능(다른타입으로 같은 코드를 재사용 가능)
### Type Erasure
컴파일러는 제네릭 타입을 이용해서 소스파일을 체크하고, 필요한 곳에 형변환을 넣어준다. 그리고 제네릭 타입을 제거한다. 따라서 컴파일된 파일(*.class)에는 제네릭 타입에 대한 정보가 없다.
타입 parameter가 bound 되어 있다면 각각을 그 첫 번째 bound로 대체하고, 타입 parameter가 unbound되어 있다면 Object로 대체한다.
https://docs.oracle.com/javase/tutorial/java/generics/genTypes.html
'PROGRAMMING' 카테고리의 다른 글
[DOCKER] cache gradle dependencies (0) | 2022.08.20 |
---|---|
[SPRING] @Value annotation (0) | 2022.08.20 |
[JAVA] Call-by-value VS Call-by-reference (0) | 2022.08.20 |
[JAVA] 변성 (0) | 2022.06.10 |
[NETWORK] 서브네팅, CIDR (0) | 2022.05.29 |
Comments