我有一个有两个端口的连接器。两个端口有一个共同的根为Resource
. 我正在尝试为这两个端口找到共同的根。
我需要一组用于一个端口(p1)的元素,可以通过getParent
方法找到。对于另一个端口(p2),我需要检查集合中是否存在 p2 的任何元素。虽然我需要这个方法来返回一个 type 的对象Resource
,但我在这一点上有点卡住了。我收到以下错误。
加载时出现意外问题:'java.lang.ClassCastException: policy.vddl.model.Resource cannot be cast to java.lang.Comparable' java.lang.ClassCastException: vddl.model.Resource cannot be cast to java.lang.Comparable at java.util.TreeMap.compare(Unknown Source) at java.util.TreeMap.put(Unknown Source) at java.util.TreeSet.add(Unknown Source) at vddl.product.Product.findCommonRoot(Product.java:357)
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;
}