beanshell脚本无法将一组对象识别为java.util.Collection

时间:2013-03-22 09:24:41

标签: beanshell

我使用以下脚本使用索引从一组输入对象中选择一个对象。 它无法识别输入参数是一组三个值。 我认为我在行中做错了什么:

if(setOfObjects  instanceof java.util.Collection)


if(setOfObjects != null)
{
   if(setOfObjects  instanceof java.util.Collection)
   {
      object = setOfObjects.get(index);
      if (object instanceof fUML.Semantics.Classes.Kernel.Object_)
      {
         fUML.Semantics.Classes.Kernel.Reference r = new fUML.Semantics.Classes.Kernel.Reference(object.getOwner());
         r.setReferent(object);
         object = r;
      }
   }
   Else print(index);
   if(index == 1)
   {
      print("ok");
      object = setOfObjects;
   }
   else
   {
      print("failed");
      object = null;
   }
}
else
{
   object = null;
}

1 个答案:

答案 0 :(得分:0)

GaryMcM的方法是正确的。当我在解释器命名空间中将setOfObjects设置为java.util.HashSet的实例时,代码正常工作,如下所示。

Set<String> setOfObjects = new HashSet<String>();
i.set("setOfObjects", setOfObjects );(i being beanshell interpreter's instance)

几点观察:

  1. 关键字Else应该是else(beanhell不能容忍它)
  2. 由于集合中没有setOfObjects.get(index);
  3. get(int)会抛出错误

    你确定你提供的setOfObjects不是null,或者没有拼写错误,因为beanshell会假设一个变量,其中包含错字错误作为新错误。 (在非严格的java模式下)。