2つのポートがあるコネクタがあります。2つのポートには、として共通のルートがありResource
ます。これら2つのポートの共通ルートを見つけようとしています。
getParent
メソッドを介して見つけることができる1つのポート(p1)の要素のセットが必要です。他のポート(p2)については、p2の要素のいずれかがセットに存在するかどうかを確認する必要があります。タイプのオブジェクトを返すためにこのメソッドが必要Resource
ですが、この時点で少し行き詰まっています。次のエラーが発生します。
ロード中の予期しない問題:'java.lang.ClassCastException:policy.vddl.model.Resourceをjava.lang.Comparableにキャストできません' java.lang.ClassCastException:vddl.model.Resourceをjava.lang.Comparableにキャストできません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;
}