我的问题很简单。我正在努力为建筑图制作建造器。图表数据将由对象填充,具体取决于我的同伴程序员创建的程序。因此,IVE使用了名为ObjectInterface的接口来确保对象始终具有某些方法。

我的问题是,如果我想将这些对象(我不知道哪种类型)添加到ArrayList中,是否可以像这样添加它们:

ArrayList<ObjectInterface> data = new ArrayList<ObjectInterface>();
ObjectType Test = new ObjectType("Test");
data.add(test);


在此示例中,ObjectType是实现ObjectInterface的对象

这合法吗?

最佳答案

是的,您的例子很好。

此外,我认为这是非常好的设计。 @duffymo建议的另一种改进是在左侧使用List

List<ObjectInterface> data = new ArrayList<ObjectInterface>();


这种方式data是根据抽象列表接口声明的,而不是根据具体列表实现的声明的。

09-25 20:23