[Java] Generic Type

게맛살맛게·2021년 12월 8일
0

Java

목록 보기
17/18

Generic

클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 기법
➡ 클래스 내부에서 사용할 데이터 타입을 나중에 인스턴스를 생성할 때 확정하여 사용

사용 이유

  • 객체 타입을 컴파일 시에 강하게 체크 할 수 있음
  • 형변환의 번거러움 감소

Generic Type

제네릭 타입 : 타입을 파라미터로 가지느 클래스와 인터페이스 ( 기초 자료형은 불가 )

public class 클래스명<T> { ... }
public interface 인터페이스명<T> { ... }
  • Generic 활용 content는 객체 생성시 type이 결정됨


Generic의 종류

class에 여러 타입을 입력 받을때 구분하기 위해 사용

  • T : 타입
  • K : 키
  • V : 값
  • R : 리턴타입

❕ 이외의 문자도 사용가능 (받아온 타입과 설계시 내부에서 사용할 위치만 잘 맞춰주면 ⭕)
T K V R은 관습적으로 사용하는 경우

	public class GenericTest<A, B, C> {
    	private A first;
    	private B second;
	    private List<C> third;
	    
	    public void setFirst(A first) {
	    	this.first = first
	    }
	}
✔ 위의 코드 또한 문제 없음

와일드 카드

기호 ?로 나타내며 어떠한 타입(클래스)도 될 수 있음

  • <?> : 모든 타입 가능 == <? extends Object>
  • <? extends T> : TT를 상속받은 자손들만 가능
  • <? super T> : TT의 조상들만 가능
profile
IT 기술블로그

0개의 댓글