//定义字符串
String str = "1,3,6,9,4,2,1,6";
//截取字符串
String[] strArr = str.split(",");
//转换long类型的数组
long[] strArrNum = (long[]) ConvertUtils.convert(strArr,long.class);
应用场景,如在设置后台管理权限角色时:
public Map<String, Object> saveRoleSet(String roleIds, Long userId) {
Map<String, Object> resultMap = new HashMap<>();
roleService.delete(userId); //根据用户id删除所有用户角色关联实体
if (!StringUtils.isEmpty(roleIds)) {
String idsStr[] = roleIds.split(",");
long rIds[] = (long[])ConvertUtils.convert(idsStr,long.class);
userRoleService.setRoles(userService.get(userId),rIds);
}
传入的roleIds时一组类似 "1,2,3,6,8"这样的角色id.
而要设置管理员角色时需要分解为数组并进行数据库的录入.
上图中,user_id为3的user对应的role_id有好几个,2,3,5...
当设置时它们的排列也是一个字符串而非数组传入,所以需要转换.