Develop

Generic(제네릭) 본문

백엔드/Java

Generic(제네릭)

230801 2025. 6. 11. 03:17

안녕하세요~ .ᐟ

많이쓰는 문법이나, 제가 헷갈리는 문법 위주로 내용을 정의해보려고 합니다.

 

그 첫번째 순서는 바로 제네릭입니다 하하하

아래처럼 제가 공부하고, 저만의 언어로 내용을 정리해보겠습니다 .ᐟ 

 

Generic(제네릭)

  • 정의
    • 사전 정의 : 일반적인, 범용적인
    • 클래스의 타입 결정을 미루는 것
  • 사용 방법
    • 클래스 정의 시
      • 클래스명 뒤에 <>(다이아몬드)를 쓰고, 그 안에 `타입 매개변수`를 대문자 T, E, K, V, N 로 작성한다.
        • 타입 매개변수 관례 : Type, Element, Key, Value, Number
        public class GenericBox<T> {
        
        		private T value;
        		
        		public void set(T value) {
        				this.value = value;
        		}
        		
        		public T get() {
        				return value;
        		}
        }
    • 클래스 사용 시
      • 사용 할 타입 인자(Integer, String 등) 를 지정하면, 컴파일 시점에 타입 매개변수 T가 `타입 인자`로 변환된다.
        • 타입 인자 관례 : 기본형 사용불가 (int, double..), 래퍼 클래스(Integer, Double..) 사용
        public class Main {
        		public static void main(String[] args) {
        				// 생성 시점에 타입 매개변수 T의 타입이 Integer 로 결정 됨
        				GenericBox<Integer> integerBox = new GenericBox<Integer>();
        				
        				integerBox.set(10);
        				Integer integer = integerBox.get(); // Integer 타입이 반환되어 꺼낼 수 있음 (캐스팅 필요없음)
        				
        				System.out.println("integer = " + integer);
        		}
        }
  • 장점
    • 컴파일 시점에 타입이 결정되어 타입 안정성이 높아지고, 재사용성과 코드 유연성이 증가한다.

 

 

오늘도 수고하셨습니다~ .ᐟ 

'백엔드 > Java' 카테고리의 다른 글

Assert  (0) 2025.05.23
Java에서 Kotlin 으로 마이그레이션  (0) 2025.05.23