Java中如何根据API返回的通知ID获取对应用户名?
问题解决:通过通知ID获取用户名
正确的类型定义
API返回的是键为通知ID、值为用户名的键值对对象,对应Java中的Map结构,而非你之前用的ArrayList<Pair<Integer,String>>。根据通知ID的处理需求,有两种合适的类型:
- 直接使用字符串作为键(匹配API返回的原始字符串格式):
Map<String, String> usernameMap; - 转换为Integer作为键(需确保所有通知ID都是合法数字):
Map<Integer, String> usernameMap;
获取用户名的方法
根据你选择的类型,对应两种取值方式:
若使用
Map<String, String>:
将Integer类型的通知ID转为字符串后调用get()方法:String username = usernameMap.get(String.valueOf(userIdInt));若使用
Map<Integer, String>:
直接传入Integer类型的通知ID调用get()方法:String username = usernameMap.get(userIdInt);
原方案失效原因
ArrayList<Pair<Integer,String>>是有序列表结构,需要遍历才能定位到对应ID的用户名,完全不匹配API返回的键值对映射结构。而Map是专为键值对快速查找设计的结构,能直接通过通知ID(键)获取对应的用户名(值),效率更高且逻辑更贴合API数据格式。
内容的提问来源于stack exchange,提问作者Universe
相关产品推荐
相关产品推荐

