【发布时间】:2015-02-15 19:34:48
【问题描述】:
正如问题所述,是否可以定义一个仅允许一组预定义且可能不相关的类型(即不从公共对象扩展)的集合。这种事:
List<Foo|Bar> list = new ArrayList<Foo|Bar>();
list.add(new Foo());//Allow
list.add(new Bar());//Allow
list.add(new Baz());//Disallow
由于我以前从未见过这样做,我假设这可能是不可能的。如果没有,那么有充分的理由为什么不这样做?
我想一个解决方案是让每个必要的类都继承一个空接口,然后将列表的类型设置为这个接口。这会被视为“正常”做法吗?
【问题讨论】:
-
是的,在这种情况下使用“标记界面”是可以的。
-
啊,当你知道要谷歌什么时,一切都会变得更容易!
标签: java generics collections types interface