请教个泛型的问题

逍遥jc 2015-12-22 07:57:00
public static Map getMapOfObjList(List objList,String keyName){
Map returnMap=new HashMap<>();
objList.forEach(obj->{
Long key=getLongOfObj(InvokersUtil.getInvokeValue(obj, keyName));
returnMap.put(key,obj);
});
return returnMap;
}

这段代码标红色地方如何正确使用泛型,使得调用的时候可以不限List中的类型范围。
...全文
141 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 4 楼 u010111184 的回复:
[quote=引用 3 楼 abcdefghiijklmnopqrs 的回复:] 如果没有在方法中对list进行添加操作,List<?>这样也可以,如果这样和参数类型不加泛型的效果是一样的
外部调用的时候,类型是不定的,我考虑过用T但是貌似不行的样子。[/quote]调用方法的时候类型还不知道?具体需求是什么,如果不行直接List<?>这样吧,反正在方法里面也没有向list中添加,只不过get方法的返回值只能是Object
逍遥jc 2015-12-22
  • 打赏
  • 举报
回复
引用 3 楼 abcdefghiijklmnopqrs 的回复:
如果没有在方法中对list进行添加操作,List<?>这样也可以,如果这样和参数类型不加泛型的效果是一样的
外部调用的时候,类型是不定的,我考虑过用T但是貌似不行的样子。
  • 打赏
  • 举报
回复
如果没有在方法中对list进行添加操作,List<?>这样也可以,如果这样和参数类型不加泛型的效果是一样的
  • 打赏
  • 举报
回复
如果没有在方法中对list进行传递参数List<?>这样也可以,只不过这样通过get方法得到值就是Object类型了 Map是返回值的类型,在写方法的时候就知道返回是什么类型了,所以直接用实际类型就行
  • 打赏
  • 举报
回复
public <T> static Map<Long,...> getMapOfObjList(List<T> objList,String keyName){//这个方法好像没有向List中添加值,所以直接用T,然后后面直接list.forEach()直接返回的就是实际的T
Map<Long,obj是什么类型这就写什么类型> returnMap=new HashMap<Long,一样>();
objList.forEach(obj->{ 
Long key=getLongOfObj(InvokersUtil.getInvokeValue(obj, keyName));
returnMap.put(key,obj);
});
return returnMap;
}

62,610

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧