我的博客原址点击此处
注意:实现任意接口需要 BeanShell 运行在 Java 1.3 或者更高版本的环境之下。
你可以使用标准的 Java 匿名内部类语法通过脚本来实现一个接口。例如:
- ActionListener scriptedListener = new ActionListener() {
- actionPerformed( event ) { ... }
- }
你没必要把一个接口中的所有方法写成脚本。你可以选择性得把你想要调用的那些写成脚本。如果试图请求一个没有被定义的方法那么调用的代码将很容易得抛出异常。如果你希望重载大量方法——为记录日志创建一个“仿造的”适配器——你可以在你的脚本对象上实现一个特定的方法签名:invoke(name, args)。调用 invoke() 方法来处理任何未定义的方法调用:
- ml = new MouseListener() {
- mousePressed( event ) { ... }
- // handle the rest
- invoke( name, args ) { print("Method: "+name+" invoked!");
- }
转载于:https://blog.51cto.com/tongqiuyan/744169