Generic Class (Basic)

2022. 2. 22. 11:21·Programming/Java

제네릭이란?

데이터 타입을 컴파일 시 결정

 

제네릭 클래스

- 인스턴스 생성 시 자료형 결정

- compiler가 알 수 있게, T로 구분!

 

제네릭 이전의 코드

프로그래머의 실수 발견

1. 컴파일 오류

2. 예외 발생

 

제네릭 이전의 코드는 프로그래머의 실수를 컴파일 오류, 예외로 발견하기 어렵다. 

 

제네릭 클래스

class Box<T> {

	private T ob; 

	public void set(T o){

		ob= o; 
        }

	public T get(){
	
		return ob;
        }

}

 

제네릭의 구성

1. Type Parameter(타입 매개변수)
: Box<T>에서 T

2. Type Argument(타입 인자)
: Box<Apple>에서 Apple

3. Parameterized Type(매개변수화 타입)
Box<Apple>

 

 

프로그래머의 실수가 컴파일 오류에서 발견된다(제네릭 이전의 코드는 컴파일 오류로 실수 발견 X)

 

제네릭 클래스의 타입 인자 제한

class Box<T extends Number>{
	...
}

인스턴스 생성 시 타입 인자를 Number 또는 Number을 상속하는 클래스만 허용

 

타입 인자 제한의 효과

class Box<T extends Number>{
	private ob;
    ...
    public int toIntValue(){
    	return ob.intValue();
    }

}

class Box2<T>{
	private ob;
    ...
    public int toIntValue(){
    	return ob.intValue();
    }

}

1. 프로그래머의 실수를 컴파일 시 확인 가능하다. ex)String  

2. 타입 인자를  Number 상속 클래스로 제한-> Number에 속한 메소드를 호출 가능

 

하나의 클래스와 하나의 인터페이스에 대해 동시 제한

 

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

Wildcard <?>  (0) 2022.02.22
Generic Method (Basic)  (0) 2022.02.22
Collection  (0) 2022.02.11
원시(Primitive) 타입과 참조(Reference) 타입  (0) 2022.02.11
Default Method in Interface  (0) 2021.11.22
'Programming/Java' 카테고리의 다른 글
  • Wildcard <?>
  • Generic Method (Basic)
  • Collection
  • 원시(Primitive) 타입과 참조(Reference) 타입
사랑우주인
사랑우주인
  • 사랑우주인
    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
  • 링크

  • 공지사항

  • 인기 글

  • 태그

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

  • hELLO· Designed By정상우.v4.10.1
사랑우주인
Generic Class (Basic)
상단으로

티스토리툴바