尝试在jade中打印容器ID时出现java.lang.ClassCastException

时间:2012-02-19 17:53:33

标签: java agents-jade

我有一个代码,用于使用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 请帮忙。

1 个答案:

答案 0 :(得分:1)

两种类型的List不在同一个类层次结构中,因此无法在彼此之间进行转换,因此ClassCastException

在JADE中使用jade.util.leap.List接口来提供List集合,该集合在JADE的不同后端之间看起来相同,但实际上实现的方式不同。在Javadocs中,ArrayList仅扩展Object

要解决此问题,请将listOfPlatforms声明为jade.util.leap.List类型。