HBlog
3/7 제네릭 본문
Client<?> client = null;
- 제네릭 사용 이유
- 컴파일 시 강한 타입 체크를 할 수 있음
- 타입 변환을 제거함
- 제네릭 타입
- 제네릭 타입: 타입을 파라미터로 가지는 클래스와 인터페이스 ex) <>
- object타입: 모든 자바 클래스의 최상위 조상 클래스
- 제네릭은 클래스를 설계할 때 구체적인 타입을 명시하지 않고 타입 파라미터로 대체했다가 실제 클래스가 사용될 때 구체적인 타입을 지정함으로써 타입변환을 최소화시킴
- 멀티 타입 파라미터
- 멀티 타입 파라미터: 콤마로 구분
- 자바 7부터 제네릭 타입 파라미터의 중복 기술을 줄이기 위해 다이아몬드 연산자 제공
ex) Product<Tv, String> product = new Product<>();
- 제네릭 메소드
- 호출 방법:
- 리턴타입 변수 = <구체적타입> 메소드명(매개값); - 명시적으로 구체적 타입을 지정
- 리턴타입 변수 = 메소드명(매개값); - 매개값을 보고 구체적 타입을 추정
- 제한된 타입 파라미터
- 타입 파라미터에 지정되는 구체적인 타입을 제한할 필요가 있을 때
- 예: <T extends 최상위타입>: 최상위타입의 하위타입만 허용
- 예: Number- Byte, Short, Integer, Long. Double
- 와일드타입
- 제네릭타입<?>: 제한 없음
- <? extends 상위타입>: 상위클래스 제한(하위만 가능)
- <? super 하위타입>: 하위클래스 제한(상위만 가능)
- 제네릭 타입의 상속과 구현
'프로그래밍 기록' 카테고리의 다른 글
3/2 이클립스 환경설정 (0) | 2022.12.17 |
---|---|
REST API (0) | 2022.12.17 |
2/27일 Oauth 인증 (0) | 2022.12.17 |
Comments