现在Java SE 5已经发布,在明年Java SE 6也将发布。Java SE 6较Java SE5有了很大的改进,它的功能更强,而且是专为Vista所设计,这就意味着Java SE 6将是Vista上的最佳选择。而Java SE 6所提供的最众多的新功能必将成为它的最大卖点。
 
						
							
动态实现接口
  脚本引擎还有一个更吸引的功能,那就是动态实现接口。如我们要想让脚本异步地执行,即通过多线程来执行,那InvokeEngine类必须实现Runnable接口才可以通过Thread启动多线程。因此,可以通过getInterface方法来使InvokeEngine动态地实现Runnable接口。这样一般可分为3步进行。
  1. 使用javascript编写一个run函数
| engine.eval("function run() {print('异步执行');}"); | 
  2. 通过getInterface方法实现Runnable接口
| Runnable runner = invokeEngine.getInterface(Runnable.class); | 
  3. 使用Thread类启动多线程
| Thread t = new Thread(runner); t.start();
 | 
  下面是实现这个功能的详细代码。
| import javax.script.*;import static java.lang.System.*;
 public class InterfaceTest {
 public static void main(String args[])
 {
 ScriptEngineManager manager = new ScriptEngineManager();
 ScriptEngine engine = manager.getEngineByName("javascript");
 try
 {
 engine.eval("function run() {print('异步调用');}");
 Invocable invokeEngine = (Invocable)engine;
 Runnable runner = invokeEngine.getInterface(Runnable.class);
 Thread t = new Thread(runner);
 t.start();
 t.join();
 }
 catch (InterruptedException e)
 {
 err.println(e);
 }
 catch (ScriptException e)
 {
 System.err.println(e);
 }
 }
 }
 | 
  其实上面的代码是通过javascript实现了Runnable接口的run方法。