2021-06-30 강의록_제네릭Generic

MIN.DI·2021년 6월 30일
0

강의록

목록 보기
24/54

제네릭 타입이란?

클래스, 인터페이스, 메소드 만들 때 사용.
참조타입에 제네릭 기호(<> 다이아몬드 기호) 가 들어가면 제네릭타입이라고 부른다.
< > 사이에는 타입 파라미터 작성. >> '타입'을 받는 '매개변수'!!
제네릭은 기본타입은 해당없음.
참조타입을 일반화 한다.

컴파일 단계에서 잘못된 타입 사용될 수 있는 문제를 제거.
대표적으로 다형성 instanceof
만약 부모타입에 들어가는 자식객체가 무조건 정해져있다면?
무조건 문자열객체만 들어갈 수 있게 정해놨다면, 강제형변환 할 때 무조건 String타입으로 하면 된다. 그러면 오류 안남.
제네릭의 목적은 이것과 비슷하다.
사용할 타입을 아예 지정해놓는 것.

제네릭 목적

  1. 강제 형변환을 없앤다!
    프로모션, 캐스팅 등 형변환 자체가 프로그램 성능에 많은 영향을 미침.
    제네릭 사용하면 형변환 안해도 되므로 성능 향상된다.

  2. 잘못된 타입을 사용할 문제가 없어진다.
    (사용시 컴파일 오류 발생함)
    타입 파라미터에 전달한 진짜 타입(구체적 타입. 구체타입)으로 컴파일시 바꿔줌.

이 클래스, 인터페이스, 메소드에서는 문자열만 쓰겠다, 인티저만 쓰겠다!
<String>, <Integer> 등등 구구체타입 지정해서 작성함.

제네릭 사용

제네릭타입 선언할 때에는 타입파라미터 (<T>) 로 만들고,
제네릭타입 사용할 때는 구체타입 전달해야 함!!! (매개변수니까!!!)

제네릭타입은 곧 Templete이다.
구체타입만 제공하면 클래스, 인터페이스, 메소드 찍어낼 수 있다.


멀티타입 파라미터

두 개 이상의 멀티타입 파라미터 사용, 각 타입 파라미터를 콤마로 구분.
ex >> Product<T,M>
이걸 사용할 때 Product<Tv, String>, Product<Car, String> 로 사용함

상속 개념과 비슷하다. 멀티타입 파라미터를 부모타입이라고 생각하면 됨.

profile
내가 보려고 쓰는 블로그

0개의 댓글

관련 채용 정보