2013-03-22 2 views
0

다음 스크립트를 사용하여 색인을 사용하여 입력 객체 세트에서 객체를 선택합니다. 입력 인수가 세 개의 값 집합임을 인식하지 못합니다. 내가 라인에서 뭔가 잘못하고있는 중이 야 가정beanshell 스크립트가 객체 세트를 java.util.Collection으로 인식하지 않습니다.

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; 
} 
+0

나는 이것이 무엇을 말하는지 먼저 확인해 보겠다 : print ("setOfObjects is :"+ setOfObjects.getClass(). getName());'. 수도 도요? BeanShell이 ​​그것을 허용하지 않는 한 정확하지 않습니다. – GaryMcM

답변

0

GaryMcM의 접근 방식이 정확합니다. 아래 코드와 같이 인터프리터 네임 스페이스에 setOfObjectsjava.util.HashSet의 인스턴스로 설정하면 코드가 올바르게 작동합니다.

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

몇 가지 관찰 : Else이 (으로 Beanshell이 ​​그것을 용납하지 않음)

가 있습니까 설정에는 get(int) 없기 때문에

  • setOfObjects.get(index);이 오류가 발생합니다 else해야

    1. 키워드 당신이 제공하는 setOfObjectsnull이 아니거나 n이 아니면 o beanshell은 오타 오류가있는 변수를 새 것으로 가정합니다. (엄격하지 않은 java 모드에서).

  • 관련 문제