【问题标题】:JAVA: How can I initialize an ArrayList to specific class type with Object-wrapped instance?JAVA:如何使用对象包装的实例将 ArrayList 初始化为特定的类类型?
【发布时间】:2016-11-09 02:04:38
【问题描述】:

假设我们在下面有 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);

当然我可以通过调用drink.getClass()或drink.getClass().getCanonicalName()左右来查看drink的类。没关系。

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

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


我该怎么做?

【问题讨论】:

    标签: java object arraylist


    【解决方案1】:

    创建一个名为Drink的接口

    在Cola 和Milk 中实现接口Drink

    存储为ArrayList &lt;Drink&gt; list;

    【讨论】:

    • 谢谢!在我的情况下,这不是最好的解决方案,但我想我得到了一个很大的提示:D
    【解决方案2】:

    创建Drink接口,将Cola和Milk修改为implements Drink,然后就可以使用List&lt;Drink&gt; list2了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-28
      • 2013-05-20
      • 2017-09-13
      • 2016-06-13
      • 1970-01-01
      • 2013-02-11
      • 2013-12-11
      • 2013-10-04
      相关资源
      最近更新 更多