TIL: 2024/05/06 - Java Generics

White 와잇·2024년 5월 6일

TIL

목록 보기
12/40

과제를 하면서 활용하기 까다로웠던 제네릭을 자바의 정석을 꺼내 공부한 내용을 정리해보았다.

Generics, 제네릭스, 지네릭스

사용 이유

  • 타입 안정성 up
  • 형변환 생략으로 인한 코드의 이점

지네릭 클래스 선언하기

class Box<T> {}

  • T는 "타입 변수": T가 아닌 다른 문자여도 상관 없다.
  • class Map<K, V> {} 같은 여러 타입 변수도 가능하다.
  • 타입 변수는 임의의 참조형 타입을 받는다.
  • Box는 "원시 타입"

지네릭 클래스 사용하기

Box<String> box = new Box<String>(); -> (O)
Box box = new Box(); -> (가능함), 비권장, 지양, warning
위는 Box<Object> box = new Box<Object>(); 와 동일하다.

특징

  • static 멤버변수는 타입 변수 T를 사용할 수 없다. 지네릭 클래스 인스턴스마다 다른 타입 T가 선언되면 각 멤버변수는 다른 값을 가질 수 밖에 없다. 그러므로 불가능
  • T의 배열을 생성할 수 없다. 예) T[] arr = new T[10]; (X)
profile
웹개발 도전! 데브옵스 도전!

0개의 댓글