-
15. demo2 - (4) FruitDemo ( ☆ 제네릭 메서드)java/코드 리뷰 2020. 4. 24. 15:591234567891011package demo2;public class Fruit {@Overridepublic String toString() {return "과일";}}12345678910package demo2;public class Apple extends Fruit {public String toString() {return "사과";}}12345678910package demo2;public class Grape extends Fruit {public String toString() {return "포도";}}12345678910111213141516171819202122package demo2;import java.util.ArrayList;public class FruitBox<T> {private ArrayList<T> list = new ArrayList<T>();public void add(T t) {list.add(t);}public T get(int index) {return list.get(index);}public int size() {return list.size();}}1234567891011121314151617181920212223package demo2;public class Mixer {// 제네릭 메서드// 메서드가 여러 종류의 객체를 다루는 경우 (여러 객체를 매개변수로 다루거나,// (매개변수로 전달받아야 하는 경우) 제네릭 메서드로 만듬// 메서드의 리턴타입 앞체 제네릭 선언// 메서드 호출 전달 받은 객체의 타입 지점에서 T를 선언public static <T> void mix(FruitBox<T> box) {int size = box.size();for (int i=0; i<size; i++) {T t = box.get(i);System.out.println(t.toString() + "를 믹싱합니다.");}System.out.println();}}12345678910111213141516171819202122232425262728293031package demo2;public class FruitDemo {public static void main(String[] args) {// Fruit, Apple, Grape 객체를 담는 과일 상자FruitBox<Fruit> box1 = new FruitBox<Fruit>();box1.add(new Fruit());box1.add(new Apple());box1.add(new Grape());// Apple만 담는 과일 상자FruitBox<Apple> box2 = new FruitBox<Apple>();// box2.add(new Fruit());box2.add(new Apple());// box2.add(new Grape());// Grape만 담는 과일 상자FruitBox<Grape> box3 = new FruitBox<Grape>();// box3.add(new Fruit());// box#.add(new Apple());box3.add(new Grape());Mixer.mix(box1); // 과일박스<Fruit>Mixer.mix(box2); // 과일박스<Apple>Mixer.mix(box3); // 과일박스<Grape>}}
'java > 코드 리뷰' 카테고리의 다른 글
15. demo2 - (6) CustomerDemo - 2 ( enum 선언 ) (0) 2020.04.27 15. demo1 - (5) CustomerDemo ( 상수 선언 ) (0) 2020.04.27 15. demo1.product - (3) BoxDemo ( ☆ 타입파라미터로 지정된 객체) (0) 2020.04.24 15. demo1.person - (2) PersonDemo (와일드카드 제네릭 타입제한) (0) 2020.04.24 15. demo1.person - (1) Course Demo (제네릭) (0) 2020.04.24