스프링을 공부하면서 더욱 더 제네릭스의 필요성을 느껴 간단하게 정리해보려 한다.
제네릭(Generics)
:: 클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 기법 사용
:: <> 꺽쇠 기호 사용, 기호 안에 타입명을 기재
:: 타입을 변수화 한 기능이라고도 표현함 / 객체에 타입을 지정해주는 것이라 보면 된다
:: 여러 개가 필요한 경우 2개, 3개 등 계속해서 추가활 수 있다, <T, B, Y, U>
※ 클래스 초기화할때는 제네릭 타입을 갯수에 맞게 넘겨주면 된다.
주의사항
:: !!!! static 멤버에는 제네릭 타입이 올수가 없다!!!!
class Sample<T> {
public void someMethod() {
// Type parameter 'T' cannot be instantiated directly
T t = new T(); // x
}
}
:: !!!! 제네릭 타입의 객체는 생성 불가 !!!!
:: !!!!
제네릭타입 전파
장점
타입의 안정성
의도하지 않은 타입의 객체가 저장되는 것을 막아주며, 다른 타입의 객체로 인한 타입 형태가 맞지 않아 발생하는 문제를 막아준다. 개발자가 코드실수를 줄여 줄 수 있다고 생각한다.
불필요한 형변환을 줄여서 코드의 간결함을 보여준다.
타입을 미리 명시해서 다른 타입의 객체가 저장되지 않아서 객체를 꺼내 사용할 시 형변환을 통한 타입을 맞출 필요가 없어 코드를 간결하게 줄여 줄 수 있다.
함수형인터페이스
▼▼아래의 개발블로그 참고▼▼
'TIL' 카테고리의 다른 글
+17 Springboot DTO, CREATED, READ (0) | 2023.06.30 |
---|---|
+ 16 springboot IoC Container 와 Bean (0) | 2023.06.29 |
+14 spring boot의 필수 !Lombok application.properties (0) | 2023.06.25 |
+13 API / RESTful API / Apache Tomcat (0) | 2023.06.24 |
+12 SPRING BOOT / Gradle (0) | 2023.06.24 |