JAVA 21(2) 제네릭 1

2021. 8. 13. 10:28·Programming/Java

제네릭 기반 클래스 정의

인스턴스 생성 시 T를 결정한다. 컴파일러는 <T>를 확인하고 제네릭 기반 클래스를 구분한다. 

 

- 타입 매개변수(get)=T

- 타입 인자(give)=Apple

- 매개변수화 타입(인자를 전달 받아서 새로 만들어진 타입)= Box<Apple>

 

위의 코드는 프로그래머의 실수가 컴파일 단계에서 발견됐다. 코드의 안정성을 높여준다.  

 

다중 매개변수 기반 제네릭 클래스 정의

타입 매개변수 이름 규칙 

일반적인 관례
- 한 문자로 이름을 짓는다. 
- 대문자로 이름을 짓는다. 

보편적인 선택
- E: Element
- K: Key 
- N: Number
- T: Type
- V: Value

 

타입 인자로 기본 자료형이 올 수 없다. 하지만 오토 박싱/언박싱으로 해결 가능하다. 

 

다이아몬드 기호

참조 변수 선언을 통해 컴파일러가 <> 사이에 Apple 있다고 해석한다. 

 

 

'Programming > Java' 카테고리의 다른 글

JAVA 22(1) 제네릭 2  (0) 2021.08.14
JAVA 21(3) 제네릭 1  (0) 2021.08.13
JAVA 21 (1) 제네릭 1  (0) 2021.08.13
JAVA 20(3) Arrays 클래스  (0) 2021.08.12
JAVA 20(2) Math 클래스  (0) 2021.08.12
'Programming/Java' 카테고리의 다른 글
  • JAVA 22(1) 제네릭 2
  • JAVA 21(3) 제네릭 1
  • JAVA 21 (1) 제네릭 1
  • JAVA 20(3) Arrays 클래스
사랑우주인
사랑우주인
  • 사랑우주인
    lovelyAlien
    사랑우주인
  • 전체
    오늘
    어제
  • 글쓰기
    관리
    • 분류 전체보기 (209)
      • Programming (4)
        • Spring (28)
        • Java (46)
        • JPA (2)
        • 디자인 패턴 (5)
        • 개발&아키텍처 (0)
      • Network (14)
      • OS (19)
      • Database (1)
      • Kubernetes (0)
      • Kafka (2)
      • Algorithm (49)
        • BaekJoon (1)
        • Programmers (19)
        • Algorithm (5)
        • Socar (2)
        • LeetCode (19)
      • Interview (2)
      • Issues (2)
      • DotJoin (1)
      • Git (4)
      • 독서 (3)
      • 끄적끄적 (1)
      • 외부활동 (26)
        • 항해플러스 (2)
        • JSCODE 네트워크 (19)
        • JSCODE 자바 (5)
      • SQL (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • GitHub
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Generic
    준영속 엔티티
    운영체제
    fcfs
    clone graph
    @JsonProperty
    트랜잭션
    pacific atlantic water flow
    wildcards
    @JsonNaming
    AuthenticationSuccessHandler
    제네릭
    OS
    algorithm
    추상화 클래스
    minimum number of arrows to burst balloons
    rotting oranges
    디자인 패턴
    JSCode
    socar
    Climbing Stairs
    BFS
    lower bounded wildcards
    runner 기법
    RR
    Thread
    Process
    Reorder List
    Oauth2
    LinkedList
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.1
사랑우주인
JAVA 21(2) 제네릭 1
상단으로

티스토리툴바