重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
创新互联www.cdcxhl.cn八线动态BGP香港云服务器提供商,新人活动买多久送多久,划算不套路!
成都创新互联长期为成百上千客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为太原企业提供专业的成都网站设计、网站制作,太原网站改版等技术服务。拥有十载丰富建站经验和众多成功案例,为您定制开发。Java如何实现不同类型值的类型?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
Java泛型映射不同的值类型详解
前言:
一般来说,开发人员偶尔会遇到这样的情形: 在一个特定容器中映射任意类型的值。然而Java 集合API只提供了参数化的容器。这限制了类型安全地使用HashMap,如单一的值类型。但如果想混合苹果和梨,该怎样做呢?
幸运的是,有一个简单的设计模式允许使用Java泛型映射不同的值类型,Joshua Bloch在其《Effective Java》(第二版,第29项)中将其描述为类型安全的异构容器(typesafe hetereogeneous Container)。
关于这个主题,最近碰到一些不太合适的解决方案。它给了我在这篇文章中解释这个问题域,并阐述一些实现细节的想法。
使用Java泛型映射不同的值类型
考虑一个例子,你需要提供某种应用程序的上下文,它可以将特定的键绑定到任意类型的值。利用String作为键的HashMap,一个简单的、非类型安全(type safe)的实现可能是这样的:
public class Context { private final Mapvalues = new HashMap<>(); public void put( String key, Object value ) { values.put( key, value ); } public Object get( String key ) { return values.get( key ); } [...] }