我的博客原址请点击此处
在 BeanShell 中,和 JavaScript 和 Perl 一样,脚本对象是由“封闭”的方法体来创建。通过方法返回的特殊值“this”,你可以使方法调用的结果成为一个对象的引用。在方法调用期间,你可以使用该引用指向任何变量。通常对象中包含方法,所以在 BeanShell 脚本方法中可能也包含任何层级的方法(来构成脚本对象):
- foo() {
- print("foo");
- x=5;
- bar() {
- print("bar");
- }
- return this;
- }
- myfoo = foo(); // prints "foo"
- print( myfoo.x ); // prints "5"
- myfoo.bar(); // prints "bar"
如果这些代码看起来很陌生,别急,请参阅用户手册来获取更详尽的解释。
在你的脚本中,BeanShell 的脚本对象(即先前例子中的“this”这样的类型引用)可以自动实现任何 Java 的接口类型。当 Java 代码调用该接口上的方法时,相应的脚本方法将被调用来处理它们。当你试图传递一个带有接口类型方法的参数时, BeanShell将自动“匹配”该脚本对象。为了在 BeanShell 之外传递脚本的引用,你可以在必要的时候执行一个显式的转换。请参阅用户手册获取全部的细节内容。
本文转自 tongqiuyan 51CTO博客,原文链接:http://blog.51cto.com/tongqiuyan/744172