클래스 레벨이 있고 메소드 레벨이 있다.
클래스레벨은 List같은 자료구조만 써도 익숙하니까 다음처럼 간단히 짚고 넘어가자.
public class MyStack<T> {
// 클래스 전체에서 T를 사용할 수 있다
private final List<T> elements = new ArrayList<>();
public void push(T element) { … }
public T pop() { … }
}
MyStack<T>에서 <T>는 Type Parameters 선언이라고 불린다.
근데 class는 제네릭이 아니면서 메소드 하나만 제네릭으로 만들경우는 다음처럼 타입선언을 왼쪽에 해줘야 한다.
private <T, R> Mono<CommonDto> executeWithMetrics(
AdsEndpoints endpoint,
R request,
Mono<T> operation) { … }
<T, R> 부분을 이야기 하는건데 언뜻 보면 되게 헷갈리는데, 컴파일러에게 T와 R이라는 제네릭 타입을 쓸거야.. 라고 선언하는 부분이라고 보면 된다.
반응형
'Programming > JAVA' 카테고리의 다른 글
| Reactor Context (0) | 2025.05.27 |
|---|---|
| reactor #1 (1) | 2024.01.01 |
| BiFunction, Function을 사용한 함수형 프로그래밍 (0) | 2024.01.01 |
| java Optional (1) | 2023.11.04 |
| java enum (0) | 2023.11.03 |
