当前位置: 首页 > 知识库问答 >
问题:

“java.lang.ClassCastException:资源不能强制转换为java.lang.Carablement”

钱锦
2023-03-14

我有一个连接器,它有两个端口。两个端口有一个共同的根作为资源。我正试图找到这两个端口的共同根。

我需要一个端口(p1)的一组元素,可以通过getparent方法找到。对于另一个端口(p2),我需要检查集合中是否存在p2的任何元素。虽然我需要这个方法来返回resource类型的对象,但在这一点上我有点卡住了。我得到以下错误。

private Element findCommonRoot(Connector connector)
{

    List<Port> portList = getListOfPort(connector);
    Port p1 = portList.get(0);
    Set<Element> portElementSet = new TreeSet<Element>();

    Element pathElement = p1.getParent();
    while (pathElement != null)
    {
        portElementSet.add(pathElement);
        pathElement = pathElement.getParent();
    }

    Port p2 = portList.get(1);
    Element pathElement2 = p2.getParent();

    for(Element e: portElementSet)
    {
        if(portElementSet.contains(pathElement2))
            pathElement2 = e;
    }

    return pathElement2;
}

共有1个答案

黄磊
2023-03-14

如果不需要对元素进行排序,请使用hashset代替treesethashset没有排序,也不需要元素具有可比性。

 类似资料: