java – 如何确保集合仅包含接口的每个实现之一
发布时间:2020-12-15 04:26:12 所属栏目:Java 来源:网络整理
导读:我有一个具有大量实现的接口MyInterface和一个Collection Collection MyInterface. 现在我如何确保此Collection中没有两个元素属于同一类型? 我怎样才能防止任何条目被覆盖? 意味着在任何给定的时间点只有集合中每个实现的1个实例. 出于显而易见的原因,我
我有一个具有大量实现的接口MyInterface和一个Collection Collection< MyInterface>.
现在我如何确保此Collection中没有两个元素属于同一类型? 我怎样才能防止任何条目被覆盖? 意味着在任何给定的时间点只有集合中每个实现的1个实例. 出于显而易见的原因,我无法向接口添加默认的equals(Object obj)实现. 我目前看到的唯一方法是创建一个抽象类MyAbstractClass.但这似乎有点矫枉过正(?) 解决方法
您可以使用Map< Class<?> ;,MyInterface>而不是集合< MyInterface>.关键是实施类.这将确保每种类型的最多一个实例可以添加到Map中.
以下是如何初始化地图并向其添加条目而不覆盖现有条目: Map<Class<?>,MyInterface> map = new HashMap<>(); ... if (!map.containsKey(obj.getClass())) { map.put(obj.getClass(),obj); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- java – 如何使用hibernate / jpa注释将一个类映射到不同的
- java中struts2实现文件上传下载功能实例解析
- Java8深入学习之熟透Optional
- java基于TCP协议实现聊天程序
- java.lang.IllegalStateException:在提交响应后无法调用se
- Java中的格式字符串,以字节为单位
- java – 当我可以通过引用子类访问所有方法时,为什么要引用
- java – 如何使用地图列表在Spring中执行批量更新?
- 解决SpringMVC Controller 接收页面传递的中文参数出现乱码
- java – 何时使用Navigator或Package Explorer视图?