목록Java/JAVA3 (26)
충분히 쌓여가는
타입 변수 지네릭스 클래스를 작성할 때, Object 타입 대신 타입 변수(E)를 선언해서 사용 타입 변수에 대입하기 객체를 생성시, 타입 변수(E) 대신 실제 타입(Tv)을 지정(대입) // 타입 변수 E 대신에 실제 타입 Tv를 대입 ArrayList tvList = new ArrayList(); Tv가 E에 대입 타입 변수 대신 실제 타입이 지정되면, 형변환 생략가능 코드 import java.util.ArrayList; class Tvv {} class Audioo {} public class typeVariableTest { public static void main(String[] args) { ArrayList list = new ArrayList(); // Tvv 타입의 객체만 저장가능 l..
Generices 컴파일시 타입을 체크해 주는 기능(compile-time type check) ArrayList tvList = new ArrayList(); tvList.add(new Tv()); // OK tvList.add(new Audio()); // 컴파일 에러, Tv 외에 다른 타입은 저장 불가 객체의 타입 안정성을 높이고 형변환의 번거로움을 줄여줌 지네릭스의 장점 1. 타입 안정성을 제공 2. 타입체크와 형변환을 생략할 수 있으므로 코드가 간결해진다 코드 ClassCastException 발생: 컴파일러는 list.get(2)의 type가 Object라서 (Integer)를 허용하지만 실제로 list 안에 어떤 것이 들어있는지 확인할 수 없다 차라리 실행 시 발생하는 에러보다 컴파일 도중 ..