JAVA/chapter22_generic

chapter06 : generic

GAWON 2023. 5. 30. 18:41
package org.joonzis.ex;

import java.util.Arrays;

class Basket<T>{	// 음식만 담을 수 있는 바구니
	private T[] foods;
	@SuppressWarnings("unchecked")
	public Basket(int length) {
		foods = (T[])(new Object[length]);
	}
	public void add(T food) {	// setter
		for(int i=0; i<foods.length; i++) {
			if(foods[i] == null) {
				foods[i] = food;
				break;
			}
		}
	}
	public T[] getFoods() {
		return foods;
	}
}
class Food{}
class Apple extends Food{}
class Banana extends Food{}
class Bread extends Food{}
class Computer{}
public class Ex06_generic {
	public static void main(String[] args) {
		
		Basket<Food> basket = new Basket<>(5);
		
		basket.add(new Apple());
		basket.add(new Banana());
		basket.add(new Bread());
		//basket.add(new Computer());
		//Food food = new Computer();
		
		System.out.println(Arrays.toString(basket.getFoods()));
		
	}
}