假设我们下面有2个class类型:

class Cola {}
class Milk {}


还有一个Object实例,其类型是上述类之一:

public Object getDrink(boolean random){
    if(random)
        return new Cola();
    else
        return new Milk();
}
Object drink = getDrink(random);


当然,可以通过调用drinkdrink.getClass()来检查drink.getClass().getCanonicalName()的类。没关系。

我的问题是,我想创建并初始化drink类类型而不是Object类型的ArrayList。

ArrayList<Object> list   // This is NOT what I want.
ArrayList<drink.getClass()> list2   // Exactly what I want (but not right)



我怎样才能做到这一点?

最佳答案

创建一个名为Drink的接口

ColaMilk中都实现接口Drink

储存为ArrayList <Drink> list;

09-25 17:17