[TIL] 2021-02-23

pej4303·3일 전
0

TIL

목록 보기
5/5
post-thumbnail

제네릭(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);    // 에러 발생
    }
}
  • 컴파일시 하위 버전과의 호환성 때문에 컴파일러가 제네릭 타입이 맞는지 소스를 체크하고 필요한 부분에 형변환을 넣어주고 제네릭 타입을 제거함 그래서 클래스 파일에는 제네릭 타입이 없음
profile
기록하는 습관을 갖자

0개의 댓글