解决Map泛型嵌套问题

博主分享项目中多sheet导出工具类用到的泛型嵌套。在实现Map中key为泛型、value为泛型集合时,起初尝试Map<?,List<?>>、T和E等形式均报错,最终发现Map<?,?>可行,遍历value时进行强转即可。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用场景

最近在项目中需要写一个多sheet导出的工具类,用到了泛型的嵌套,在这里分享一下,下面上干货。(有需要多sheet导出工具类代码的可以看我另一篇博客:https://blog.youkuaiyun.com/M_memory/article/details/95318378)

如何实现Map中key为泛型,value为泛型集合

起初我是想通过Map<?,List<?>>这种形式实现,后面发现在调用方法传参时一直报错,后面又尝试了T E都不行,最后发现只有Map<?,?>这种形式是可行的,只要在遍历value时对其进行一次强转即可,下面是demo。

 	public static void main(String[] args) {
        Map<String,List<String>> dataMap = Maps.newHashMap();
        setMap(dataMap);
    }
    
    public static  void setMap(Map<?,?> dataMap){
            Set<?> dateSet = dataMap.keySet();
            for (Object obj : dateSet) {
                List<?> dataList = (List<?>) dataMap.get(obj);
            }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值