我想使用我的java代码作为beanshell脚本,但beanshell抛出异常,说明在命名空间中找不到类。在beanshell中是不是有内部类,还是有任何其他用法?
我的脚本如下所示:
.......
.......
java code
.......
.......
MyClass m = new MyClass(); //Error here: MyClass not fount in namespace
class MyClass {
}
我在脚本中使用内部类,我在脚本中声明。
谢谢, 比拉尔
答案 0 :(得分:1)
这里可能是一个愚蠢的答案,但可能是MyClass定义需要高于在文件中的用法吗? Bean shell进程脚本不是线性的吗?
快速查看文档并没有说明这一点,但以下脚本的测试当然对我有用:
class MyClass {
}
MyClass m = new MyClass();
答案 1 :(得分:0)
BeanShell不支持类定义。
您可以使用BeanShell内部类语法来实现接口:
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
答案 2 :(得分:0)
其他信息:匿名内部类作为参数 无法使用,因此您需要将实现分配给变量。 (在JMeter中)
不起作用:
object.setContext(new SomeInterface(){
//implement methods
});
使用:
SomeInterface ctx = new SomeInterface(){
//implement methods
});
object.setContext(ctx);
希望它会帮助某人。