Java : 제네릭스

김선미·2022년 6월 25일
0

제네릭스

  • 메소드나 클래스를 컴파일 할 때 객체의 타입 체크를 해 주는 기능
  • 의도치 않은 타입의 객체가 저장되는 것을 방지할 수 있음
#자주 쓰이는 타입 약자
- <T> == Type
- <E> == Element
- <K> == Key
- <V> == Value
- <N> == Number
- <R> == Result

# 제네릭스 기본 형식
public class 클래스명<T> {...}
public interface 인터페이스명<T> {...}

# 제네릭스를 사용한 인터페이스 : Collection
public interface Collection<E> extends Iterable<E> {메소드 나열}
// Collection은 <E> 타입을 사용하는 인터페이스이다.

 public interface List<E> extends Collection<E> {메소드 나열}
// List 는 <E> 타입을 사용하는 인터페이스이다.
// Collection 내에 있는 메소드를 모두 상속 받으면서도 List의 고유한 메소드를 가진 인터페이스라는 의미이다.

# 인터페이스 내에서 인터페이스와 타입이 다른 메소드의 경우
 <T> T[] toArray(T[] a);
 // 앞에 먼저 타입 <T>를 표기한다.

 boolean containsAll(Collection<?> c);
 // <?>는 인터페이스에 선언한 E와 타입이 반드시 같지 않아도 된다는 의미이다.

 boolean addAll(Collection<? extends E> c);
 // <? extends E>는 E 타입이거나 E를 상속받은 컬렉션 클래스만 addAll 한다는 의미이다.
profile
백엔드 개발 공부

0개의 댓글