본문 바로가기
Backend - Java Spring/JAVA_강의

[JAVA얄코] 제네릭 타입

by VictorMeredith 2023. 11. 28.

1. 제네릭

- 자료형을 필요에 따라 동적으로 정할 수 있도록 해준다.

- 자료형을 변수로 갖는다고 이해하면 된다.

- 메소드 또는 클래스에 사용한다.

타입스크립트에서 보던 제네릭과 같네

 

2. 예제

- T라는 타입의 형을 받아서 pickRandom 메소드를 다양하게 사용할 수 있다.

- T라는 타입의 이름을 지정해준 경우 T의 자리에는 모두 같은 타입이 들어가야 한다.

 

- 아래와 같이 array에도 사용이 가능하다.

 

3. 제네릭 클래스

- 원하는 자료형들로 세개의 필드를 갖는 클래스

 

- 천천히 읽어보자

 

4. 제한된 제네릭

 

- 근데 이 기능이 있는 이유는

- 아래와 같이 타입의 제한을 동적으로 두기 위해서이다.

 

5. 실무에서의 예제

추상클래스 FormElement
클릭가능한 인터페이스

 

추상클래스 FormElement와 인터페이스 Clickable 을 구현한 Button
마찬가지로 구현된 Switch
TextInput은 FormElement 추상클래스만 구현됨
FormClicker 클래스의 타입은 FormElement와 Clickable 모두로 제한됨

 

그래서 Button과 Switch는 FormClicker의 인스턴스로 생성이 되지만, TextInput은 안됨

 

6. 와일드카드

- 제네릭 클래스에 대한 다형성

- <? extends 어쩌고> 이렇게 물음표 쓰는건데 나중에 이해해도 됨

 

댓글