我的问题很简单。我正在努力为建筑图制作建造器。图表数据将由对象填充,具体取决于我的同伴程序员创建的程序。因此,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
是根据抽象列表接口声明的,而不是根据具体列表实现的声明的。