Class<T>
- 클래스 자체도 객체로 표현한 것으로, 특정 타입(T)의 Class 객체를 의미해요.
- 해당 클래스의 정의(필드, 메서드 등)에 대한 정보를 담은 객체를 반환합니다.
Class<?> clazz = String.class;
System.out.println(clazz.getName()); // java.lang.String
System.out.println(clazz.getDeclaredFields()); // 필드 정보들
리플렉션
- 클래스, 필드, 메서드, 생성자 등의 정보를 런타임에 동적으로 조회하거나 조작할 수 있게 해주는 기능
- 즉, Java에서 "클래스나 메서드 등의 정보를 코드로 다루는 기능"이에요.
- 이 모든 건 Class 객체를 통해 시작됨
정적(static) 인스턴스 생성 방식
컴파일 타임에 타입이 명확히 정해져 있어요.
HolidayResponse res = new HolidayResponse();
런타임 인스턴스 생성방식
아래와 같이 클래스 타입을 변수로 다루고, newInstance()로 객체도 만들 수 있음
Class<?> clazz = HolidayResponse.class;
Object obj = clazz.getDeclaredConstructor().newInstance();
제네릭 타입
부분 | 의미 |
<T> | 👉 "이 메서드는 제네릭 타입 T를 사용한다는 선언 |
T | 👉 반환 타입 — 위에서 선언한 제네릭 T를 실제 반환하겠다는 의미 |
- 파라미터로만 T를 사용하는 경우
public <T> void printItem(T item) {
System.out.println(item);
}
public <T> T getValue()
'개발기술 > Java' 카테고리의 다른 글
Java Blocking I/O vs non-Blocking I/O (0) | 2025.04.06 |
---|---|
Java 코딩구현 - Java New I/O System (0) | 2025.04.04 |
Exception Handling & Logging (1) | 2025.03.10 |
Java의 메모리 영역과 static의 의미 (0) | 2025.01.15 |
Java 코딩구현 심화 : 스트림,람다식 (0) | 2024.09.20 |