Java - 类型不匹配:无法从元素类型对象转换为字符串

新手上路,请多包涵

我有这个错误:

类型不匹配:无法从元素类型 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;
}

原文由 PlayinCOD3142 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 891
2 个回答

尝试这个 :

 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>"

原文由 Lena Bru 发布,翻译遵循 CC BY-SA 3.0 许可协议

我认为你的演员是错误的..

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

List<String> perms = (List<String>)u.getAllPermissions().get(k);

如果那不起作用,您也可以尝试做

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

希望有帮助.. 如果不回答我的问题,帮助会更容易

原文由 Aviad 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题