Java – 类型不匹配:无法从元素类型Object转换为String

我有这个错误:

类型不匹配:无法从元素类型Object转换为String

这是错误的代码:

public List 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; } 

尝试这个 :

 public List 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; } 

您在List声明中缺少""

我觉得你的演员是错的..

什么是u.getAllPermissions()。get(k); 应该回来? 什么东西? 如果是这样,您需要添加通用列表的类型

 List perms = (List)u.getAllPermissions().get(k); 

如果这不起作用,你也可以尝试

 for (Object o : perms) { String s = o.toString(); ..... } 

希望有所帮助..如果不回答我的问题,那将更容易提供帮助