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 包來進行訪問。後導入優先使用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章