BeanShell导入类和包-阿里云开发者社区

开发者社区> 开发与运维> 正文

BeanShell导入类和包

简介:

BeanShell 就和在 Java 中一样,你可以通过包和类的全名来引用一个类或者从 Java 包中导入一个或者多个类。

// 标准 Java
import javax.xml.parsers.*;
import mypackage.MyClass;

在 BeanShell 中导入语句可以出现在任何地方,甚至于在一个方法里,而不仅仅在一个文件的头部。当有冲突时,后导入的优先于之前导入的。


其中稍微有点实验性的功能是“supter import”。通过这个功能你可以自动导入整个类路径,就像这样:



import *;

第 一次这样做, BeanShell 将映射出你整个类路径;所以这主要面向交互使用。注意在你的类路径中导入每个类将消耗时间。这样也会导致许多歧义的发生。一般从映射整个类路径中处理带有 歧义的导入时 BeanShell 会报出Error。通过导入你想要用的类来消除这种歧义。


提示:
BeanShell 的 which() 命令将使用类路径映射功能告诉你类路径中特定的类究竟位于哪里。
bsh % which( java.lang.String );
Jar: file:/usr/java/j2sdk1.4.0/jre/lib/rt.jar

参见“类路径管理”获得更多关于使用 addClassPath() 或者 setClassPath() 命令修改 BeanShell 运行时的类路径的信息。


也可以查看“BeanShell 命令集合”获取关于从类路径中导入新的 BeanShell 命令的信息。



默认导入

在默认情况下,普通的 Java 代码以及扩展包已经导入。他们的导入顺序是:


  • javax.swing.event
  • javax.swing
  • java.awt.event
  • java.awt
  • java.net
  • java.util
  • java.io
  • java.lang

两个 BeanShell 包的类也默认导入:


  • bsh.EvalError
  • bsh.Interpreter

最后,我们应该注意到 BeanShell 命令也可以从类路径导入。默认的命令通过以下的方式进行导入:



importCommands("/bsh/commands");

我们也会在后面的章节中讨论如何导入自己的命令。



提示:

类 java.awt.List 和 java.util.List 都被默认导入了。

因为作为 java.util 的一部分,java.util.List 在后面导入,所以它更优先。

在你的脚本中简单地再一次导入 java.awt.List 或者导入 java.awt 包来进行访问。后导入优先使用。


本文转自 tongqiuyan 51CTO博客,原文链接:
http://blog.51cto.com/tongqiuyan/752060

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章