我有一个代码,用于使用queryPlatformAction方法从jade中的ams查找容器列表。在将sop语句放在最后时,我遇到了类型化容器ID的问题。
Result result = (Result) content;
List listOfPlatforms = (List) result.getValue();
Iterator iter = listOfPlatforms.iterator();
while (iter.hasNext())
{
ContainerID next = (ContainerID) iter.next();
System.out.println(next.getID());
}
它给我一个例外。
例外是:java.lang.ClassCastException:jade.util.leap.ArrayList不能 被强制转换为java.util.List 请帮忙。
答案 0 :(得分:1)
两种类型的List
不在同一个类层次结构中,因此无法在彼此之间进行转换,因此ClassCastException
。
在JADE中使用jade.util.leap.List接口来提供List
集合,该集合在JADE的不同后端之间看起来相同,但实际上实现的方式不同。在Javadocs中,ArrayList仅扩展Object
。
要解决此问题,请将listOfPlatforms
声明为jade.util.leap.List
类型。