본문 바로가기

분류 전체보기322

지네릭 타입 형변환 Box box = null; Box objBox = null; box = (Box)objBox; //OK, 지네릭타입 -> 원시타입 (경고) objBox = (Box)box; //OK, 원시타입 -> 지네릭 타입(경고) 지네릭 타입과 넌 지네릭 타입간 형변환은 항상 가능하지만 경고가 발생한다. 대입된 타입이 다른 지네릭 타입 간에는 Object일지라도 형변환이 불가능하다. Box 2019. 7. 17.
지네릭 메서드 지네릭 메서드 : 메서드의 선언부에 지네릭 타입이 선언된 메서드 static Juice makeJuice(FruitBox box){ String tmp =""; for(Fruit f : box.getList()) tmp += f+" "; return new Juice(tmp); } 이와 같이 타입 변수에 타입을 대입해야 하나 대부분의 경우 컴파일러가 타입을 추정할 수 있기 때문에 생략해도된다. 2019. 7. 17.
Generic Wild Card 와일드 카드 : 지네릭스에 다셩성을 부여하기 위해 생성 : 제한 없음. 모든 타입이 가능 2019. 7. 14.
Generics Box appleBox = new Box(); Box appleBox = new Box();//OK 두문장은 같은 문장이다 지네릭스 타입의 안정성을 제공한다 타입의 체크와 형변환을 생략할 수 있으므로 코드가 간결해진다. class Box {//지네릭 타입 T를 선언 T item; void setItem(T item) {this.item = item;} T getItem(){return item;} } ※ 기호의 종류가 달라도 임의의 참조형 타입을 의미한다는 것은 모두 같다. 지네릭스의 제약사항 1.모든 객체에 동일하게 동작해야하는 static멤버에 타입변수 T를 사용할 수 없다. class Box{ static T item; //에러 static int compare(T t1, T t2){....}//에.. 2019. 7. 9.