0

我正在使用以下脚本使用索引从一组输入对象中选择一个对象。它不承认输入参数是一组三个值。我假设我在这条线上做错了什么:

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;
}
4

1 回答 1

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(beanshell 不能容忍)
  2. setOfObjects.get(index);将抛出错误,因为get(int)Sets中没有

您确定setOfObjects您提供的不是null,或者没有拼写错误,因为 beanshell 将假定一个带有拼写错误的变量作为新变量。(在非严格的 java 模式下)。

于 2013-04-20T16:50:02.210 回答