String转换成long[]数组后,调用dao失败

wangsufu77 2014-01-18 09:08:07
将String转换成long[]数组,代码如下:
package cn.itcast.oa0909.utils;

import java.util.Arrays;
import java.util.Collections;

public class OAUtils {
public static Long[] string2Longs(String ids){
String[] s = ids.split(",");
Long[] aa = new Long[s.length];
// int index = 0;
// for(String string:s){
//
// aa[index] = Long.parseLong(string);
// index++;
// System.out.print(aa[index]+"dd");
// }
for(int i=0;i<ids.length();i++){
String str=s[i];
aa[i]=Long.valueOf(str);
System.out.println(aa[i]+"DD");
}
return aa;
}
}

转换之后,在action中调用service方法如下:
public String savePrivilege(){
System.out.println("||"+this.getMids()+"||"+this.getUid());
User user=userService.getUserById(this.getUid());

Set<Menuitem> menuitems=menuitemService.getMenuitemsByIDS(OAUtils.string2Longs(this.mids));

user.setMenuitems(menuitems);

userService.updateUser(user);
return SUCCESS;


}
问题是:如果我传的数字值只有一位则可以调用到DAOIMP(from Menuitem where mid in (1);
如果调用传递的值是对个数组,如[10,20]则根本就没有调用DAOIMP。
难道Set<Menuitem> menuitems=menuitemService.getMenuitemsByIDS(OAUtils.string2Longs(this.mids));
这个写错了吗?打印出来的结果没什么问题啊。
谢谢大家!
...全文
69 点赞 收藏 1
写回复
1 条回复
蜗牛- 2014年01月20日
你将String 转换为 long[] 后,对应的调用方法的入参有没有做修改呢,如果没有做修改,则之前方法应该传入String型参数的,你给了long[] ,它找不到对应的long[] 入参的方法。
回复 点赞
发动态
发帖子
Web 开发
创建于2007-09-28

5.2w+

社区成员

34.1w+

社区内容

Java Web 开发
社区公告
暂无公告