TIL 일곱번째날, 오늘도 새로 학습한 내용을 적어보자.
습득한 지식 및 내용
List<Double>
: List<Double>
을 사용하면서 왜 List<double>
은 사용못하지라는 생각이 들었다.
: 자바의 제네릭스(generics)는 참조 타입에서만 동작하도록 설계되어있으므로 List<double>
와 같은 선언은 불가능하다.
: 여기서 제네릭스는 타입 안전성을 제공하기 위해 도입된 기능으로 클래스나 메서드에서 사용할 타입을 컴파일 시점에 지정할 수 있도록 한다.
List<Double> list = new ArrayList<Double>();
자바 제네릭(Generics)
: 코드상에서 제네릭을 사용하는 것을 많이 봤지만 이 개념과 원리에 대해 자세히 몰랐다. 이번 기회에 공부하면서 정리해야겠다.
: 제네릭에서 할당 받을 수 있는 타입은 참조형(Reference)
타입뿐임
: int형이나 double형 같은 원시(Primitive)
타입을 제네릭 타입 파라미터로 넘길 수 없음
// 기본 타입 int는 사용 불가
List<double> list = new List<double>();
// Wrapper 클래스로 넘겨주어야 함
// (내부에서 자동으로 언박싱되어 원시 타입으로 이용됨)
List<Double> list = new List<Double>();
cf) 참고자료: https://inpa.tistory.com/entry/JAVA-%E2%98%95-%EC%A0%9C%EB%84%A4%EB%A6%ADGenerics-%EA%B0%9C%EB%85%90-%EB%AC%B8%EB%B2%95-%EC%A0%95%EB%B3%B5%ED%95%98%EA%B8%B0