質問

JavaコードをBeanshellスクリプトとして使用したかったのですが、Beanshellは名前空間にないクラスを示す例外をスローしました。 Beanshellには内側のクラスがありませんか、それとも他に使用がありますか?

私のスクリプトはここにあります:

.......
.......
java code
.......
.......
MyClass m = new MyClass(); //Error here: MyClass not fount in namespace



class MyClass {

}

スクリプトで内部クラスを使用して、スクリプトで宣言します。

ありがとう、ビラル

役に立ちましたか?

解決

たぶんここでは愚かな答えでしょうが、それはmyclassの定義がある必要があるということかもしれません その上 ファイルでの使用法は?シェルプロセススクリプトは直線的に処理されませんか?

ドキュメントを簡単に見ると、これを綴りませんが、次のスクリプトのテストは確かに私にとって正常に機能します。

class MyClass {
}
MyClass m = new MyClass();

他のヒント

クラスの定義は、Beanshellによってサポートされていません。

Beanshell Innerクラスの構文を使用して、インターフェイスを実装できます。

    x = new MyInterface() {
        overriddenMethod() {
          // ....
        }
    }

v = x.overriddenMethod(); 

または

    overriddenMethod() {
       //.....
    }

    // 'this' is a object of whatever Foo expects 
    //
    new Foo(this);

あなたの場合、私はあなたがスクリプト化されたオブジェクトアプローチを使用した方が良いと思います:

myClass() {

// methods ...

return this;

};

m = myClass(); // new instance

追加情報: 匿名の内部クラス 議論として 使用できないため、実装を変数に割り当てる必要があります。 (jmeterで)

うまくいきません:

object.setContext(new SomeInterface(){
  //implement methods
});

作品:

SomeInterface ctx = new SomeInterface(){
    //implement methods
});
object.setContext(ctx);

それが誰かを助けることを願っています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top