Java 比恩希尔内部阶级

Java 比恩希尔内部阶级,java,beanshell,Java,Beanshell,我想将我的java代码用作beanshell脚本,但beanshell抛出异常,表示在命名空间中找不到类。beanshell中没有内部类,或者有其他用法吗 我的脚本如下所示: ....... ....... java code ....... ....... MyClass m = new MyClass(); //Error here: MyClass not fount in namespace class MyClass { } 我在脚本中使用内部类,在脚本中声明 谢谢, Bil

我想将我的java代码用作beanshell脚本,但beanshell抛出异常,表示在命名空间中找不到类。beanshell中没有内部类,或者有其他用法吗

我的脚本如下所示:

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



class MyClass {

}
我在脚本中使用内部类,在脚本中声明

谢谢,
Bilal可能是一个愚蠢的答案,但MyClass定义是否需要超出其在文件中的使用范围?BeanShell不是线性地处理脚本吗

在文档中快速查看并不能说明这一点,但对以下脚本的测试对我来说肯定很好:

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

也许这是一个愚蠢的答案,但是否MyClass定义需要高于其在文件中的使用?BeanShell不是线性地处理脚本吗

在文档中快速查看并不能说明这一点,但对以下脚本的测试对我来说肯定很好:

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

BeanShell不支持类定义

您可以使用BeanShell内部类语法来实现接口:

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

v = x.overriddenMethod(); 

在您的情况下,我认为您最好使用脚本对象方法:

myClass() {

// methods ...

return this;

};

m = myClass(); // new instance

BeanShell不支持类定义

您可以使用BeanShell内部类语法来实现接口:

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

v = x.overriddenMethod(); 

在您的情况下,我认为您最好使用脚本对象方法:

myClass() {

// methods ...

return this;

};

m = myClass(); // new instance

附加信息:匿名内部类as参数不能使用,因此需要将实现分配给变量。(单位:吉米)

不起作用:

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

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

希望它能帮助别人。

其他信息:匿名内部类as参数不能使用,因此需要将实现分配给变量。(单位:吉米)

不起作用:

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

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

希望它能帮助别人。

Bilal,查看您的代码,以找出它的问题所在,这将非常有帮助。顺便说一句,Beanshell还支持内部类和(自v2.0以来)匿名内部类。顺便说一句,Beanshell还支持内部类和(自v2.0以来)匿名内部类。它不起作用。我找到了另一种不用内部类的方法。但这是2。我从班里逃走的时间。我已经读过很多次了,beanshell接受内部课程,但它对我来说从来都不起作用。我找到了另一种不用内部类的方法。但这是2。我从班里逃走的时间。我已经读过很多次了,比恩希尔接受了内心的阶级,但它从来没有为我工作过。