除了作用与修饰符:“this”、“super”、“global”之外,BeanShell 支持大量系统预定义的变量,“不可思议的”值和方法。
特殊的值
- $_ —— 最后一个表达式评估的值。这种奇怪的构造沿用自 Perl 语言,但是这种想法存在于许多脚本语言中。在交互地工作中方便你取得最后的结果。
- $_e —— 抛出最后一个未捕捉的异常对象。这方便你在交互的使用中取回最后一个异常来检查它的细节。
- bsh —— BeanShell 系统的根对象,包含系统信息和变量。
- bsh.args —— 对 BeanShell interpreter 作为命令行参数传递的字符串数组。
- bsh.shared —— 对所有 interpreter 实例进行共享的一个特殊的静态空间。通常每个 bsh.Interpreter 实例全局上是独立的;有自己的唯一的全局的命名空间和设置。bsh.shared 在 bsh.Interpreter 类中作为一个静态地命名空间被实现出来。它的增加主要为 GUI 桌面实例中的通信提供支持。
- bsh.console —— 如果 BeanShell 在它自己的 GUI 桌面模式中运行,只要它有变量,那么这个变量就持有一个对当前 interpreter 的控制台的引用。
- bsh.appletcontext —— 如果 BeanShell 在一个 Applet 中运行,存在的话,指的是当前 applet 的上下文。
- bsh.cwd —— 一个代表 BeanShell interpreter 当前工作目录的 String 字符串。它被 cd()、dir()、pwd()、pathToFile()命令使用或控制。
- bsh.show —— show() 命令使用的一个 boolean 值。它表明了在交互使用中结果是否被打印。
- bsh.interactive —— 一个表明是否这个 interpreter 运行在一个交互的模式中的 boolean 值。
- bsh.evalOnly —— 一个表明这个 interpreter 是否拥有输入流或者它是否只作为 eval() 操作(比如:嵌入式使用)的一个引擎服务。
注意:
使用“bsh”作为系统根对象名称的选择多少有点不太适宜,因为它和当前 BeanShell(以及 bsh) 的包名冲突。这意味着如果
你想显示地从 BeanShell 脚本(例如:bsh.Interpreter)中使用 BeanShell 类,你必须先导入他们。比如:
import bsh.Interpreter;
i=new Interpreter();
$_
使用的例子

$_e
使用的例子

bsh
使用的例子
本文转自 tongqiuyan 51CTO博客,原文链接:http://blog.51cto.com/tongqiuyan/766837