[TIL] 2021-02-23
제네릭(Generics)
- 어떤 타입이든 한 가지 타입으로 담을 수 있음
- 클래스나 메소드에서 컴파일시 타입 체크를 해주는 기능을 함
- 장점
- 타입 안전성을 제공
- 타입 체크와 형변환을 생략 할 수 있으므로 코드가 간결해짐
- 다른 타입의 객체로 저장되는 것을 방지하며 원래의 타입과 다른 타입으로 형변환 되어 발생 할 수 있는 오류를 줄여줌
제넥릭 사용법
- 선언하는 방법
public class MyGenerics<T> {
// T : 타입변수
T name;
public void setName(T name) {
this.name = name;
}
public T getName() {
return name;
}
}
public class GenericsTest {
public static void main(String[] args) {
// String 타입만 가능함
MyGenerics<String> my = new MyGenerics<>();
my.setName("TEST");
my.setName(123); // 에러 발생
}
}
- 컴파일시 하위 버전과의 호환성 때문에 컴파일러가 제네릭 타입이 맞는지 소스를 체크하고 필요한 부분에 형변환을 넣어주고 제네릭 타입을 제거함 그래서 클래스 파일에는 제네릭 타입이 없음
Author And Source
이 문제에 관하여([TIL] 2021-02-23), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@pej4303/TIL-2021-02-23저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)