加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

具有泛型参数基础的Java泛型参数

发布时间:2020-12-15 08:32:55 所属栏目:Java 来源:网络整理
导读:我想知道在 Java中是否有一个优雅的解决方案(除了显而易见的一个 – 声明一个不同的/显式函数.这是代码: private static HashMapString,Integer nameStringIndexMap = new HashMapString,Integer();private static HashMapBuffer,Integer nameBufferIndexMa
我想知道在 Java中是否有一个优雅的解决方案(除了显而易见的一个 – 声明一个不同的/显式函数.这是代码:

private static HashMap<String,Integer> nameStringIndexMap 
        = new HashMap<String,Integer>();
private static HashMap<Buffer,Integer> nameBufferIndexMap 
        = new HashMap<Buffer,Integer>();

// and a function
private static String newName(Object object,HashMap<Object,Integer> nameIndexMap){
    ....
}

问题是我无法将nameStringIndexMap或nameBufferIndexMap参数传递给函数.除了做另一个明确需要HashMap< String,Integer>的函数之外,我不知道更优雅的解决方案.或HashMap< Buffer,Integer>参数.

我的问题是:
这可以用更优雅的解决方案/使用泛型或类似的东西来制作吗?

谢谢,

尤利安

解决方法

你也可以使你的功能通用:

private static <E extends Object> String newName(E object,HashMap<E,Integer> nameIndexMap){
    ....
}

这将函数的两个参数绑定在一起,因此对于HashMap< String,Integer>您只能将String实例作为第一个参数传递.这可能是您想要的也可能不是:如果您只想从地图中获取元素,Jon的解决方案更简单,但如果您想将此对象添加到地图中,则此选项是唯一的选择.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读