본문 바로가기

JAVA BASE/GenericsEnumsAnnotation6

02. [자바] 제네릭 클래스 객체 생성과 사용 class Box { ArrayList list = new ArrayList(); void add(T item) { list.add(item); } T get(int i) { return list.get(i); } ArrayList getList() { return list; } int size() { reutrn list.size(); } public String toString() { return list.toString(); } } 위와 같은 클래스가 정의 되어 있다고 가정하고 이 객체를 생성하고 사용 해보려 한다. 참조변수와 생성자에 대입된 타입이 일치해야한다. Box appleBox = new Box(); // OK Box appleBox = new Box(); // 에러 상속관계여도 타입변수는.. 2021. 1. 7.
01. [자바] Generics(제네릭스) 스크롤이 다소 길기 때문에 먼저 요약을 하자면. 다루려고 하는 객체의 타입을 미리 명시해줌으로써 번거로운 형변환을 줄여준다. 1. 타입 안정성을 제공한다. 2. 타입체크와 형변환을 생략할 수 있으므로 코드가 간결해진다. Box, ArrayList, Map의타입변수 T, E ,K ,V는 기호의 종류만 다를 뿐 '임의의 참조형 타입'을 의미한다는 것은 모두 같다. static 멤버에 타입 변수 T를 사용할 수 없다. 타입변수는 인스턴스변수이기 때문에 static이 인스턴스에 접근할 수 없듯이 static멤버가 인스턴스 타입변수 T를 사용 할 수 없다. new T[] , T instanceof등에 사용 타입변수를 사용 할 수 없다. 이유는 new 연산자 때문이다. new 연산자는 컴파일 시점에 타입 T가 어떤.. 2021. 1. 7.