【发布时间】:2017-07-19 06:40:28
【问题描述】:
假设有一个名为 Entity 的接口,那么有很多类实现它。 我需要为类的每个实例创建一个类,它的集合将仅包含实现接口实体的对象,但来自相同的实现类,例如 - 如果 Person 和 Bicycle 实现接口实体,则该类的实例将具有仅包含 Person 对象或 Bicycle 对象但不能同时包含两者的集合。 感谢您的帮助!
【问题讨论】:
-
Collection<Person> theCollection(resp.Collection<Bicycle> ...) !?真的,你的问题有点不清楚。 -
您不能通过 Java 的类型系统(例如,您无法确保列表中的所有内容都是精确类型,而不是该类型的子类;但您的设计不应该要求您到)。您所能做的就是在运行时验证列表中实例的类型。
-
您可以声明具有多个边界的有界类型 (
<T extends Bicycle & Entity>),但我真的不明白这一点。你能分享一些代码吗?
标签: java design-patterns interface