지네릭스(Generics)

0

지네릭스(Generics)?

: 컴파일시 타입을 체크해주는 기능(compile-time type check) - JDK1.5
→ 컴파일때 타입을 확인할 수 있긴했는데, 한계가 있었음. 그 한계를 넘게해주는게 지네릭스

ArrayList<Tv> tvList = new ArrayList<Tv>();
// ArrayList는 Object[]배열을 가지고 있기 때문에 모든 종류의 객체가 저장 가능한데
// 지네릭스를 통해 한 객체만 저장할 수 있도록 할 수 있음 (컴파일러에게 정보제공)
tvList.add(new Tv());     // OK
tvList.add(new Audio());  // 컴파일 에러. Tv 외 다른 타입은 저장 불가
  • 객체의 타입 안정성을 높이고 형변환의 번거로움을 줄여줌

    ↳ 지네릭스를 사용하지 않을 때는 형변환을 해줘야하는데,
    지네릭스를 이용하면 들어올 수 있는 객체가 정해져있으므로 형변환을 할 필요가 없다.

✔︎ 장점

  • 타입 안정성을 제공 ( (ClassCastException : 형변환 에러)를 막을 수 있음 )
  • 타입체크와 형변환을 생략할 수 있으므로 코드가 간결해 짐
  • ClassCastException(형변환 에러) : RuntimeException(프로그래머의 실수로 발생하는 에러)의 자손
    → 실행 중 에러 발생
    ⇒ compile time에 에러가 발생하게해서(타입정보 제공을 통해) 실행하지 않아도 에러수정 가능하게하는 방법
    지네릭스

출처

  • 자바의 정석 기초편 : ch12 - 1
profile
백엔드를 공부하고 있습니다.

0개의 댓글