我有这个错误:
类型不匹配:无法从元素类型Object转换为String
这是错误的代码:
public List<String> customPrefixes(PermissionUser u)
{
List returnlist = new ArrayList();
for (String k : u.getAllPermissions().keySet()) {
List perms = (List)u.getAllPermissions().get(k);
for (String s : perms) {
String[] split = s.split(".");
if ((split.length >= 3) &&
(split[0].equalsIgnoreCase("plugin")) &&
(split[1].equalsIgnoreCase("prefix"))) {
returnlist.add(split[2]);
}
}
}
return returnlist;
}
答案 0 :(得分:8)
试试这个:
public List<String> customPrefixes(PermissionUser u)
{
List<String> returnlist = new ArrayList<String>();
for (String k : u.getAllPermissions().keySet()) {
List<String> perms = (List<String>)(u.getAllPermissions()).get(k);
for (String s : perms) {
String[] split = s.split(".");
if ((split.length >= 3) &&
(split[0].equalsIgnoreCase("plugin")) &&
(split[1].equalsIgnoreCase("prefix"))) {
returnlist.add(split[2]);
}
}
}
return returnlist;
}
您在列表声明中缺少"<String>"
答案 1 :(得分:1)
我认为你的施法是错误的..
什么是u.getAllPermissions()。get(k);应该回来?什么东西? 如果是这样,你需要添加通用列表的类型
List<String> perms = (List<String>)u.getAllPermissions().get(k);
如果这不起作用,您也可以尝试
for (Object o : perms) {
String s = o.toString();
.....
}
希望有所帮助..如果不回答我的问题,那将更容易提供帮助