`
ruvuoai
  • 浏览: 95978 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

beanshell学习笔记(四)——scripting interface

阅读更多
由于对beanshell对接口的实现功能不是很清楚..故写下这篇不只是对是错的理解,主要是为了給自己留下学习时产生的疑问及即使的理解,为后来的梳理做个标记


对接口的实现是beanshell的强大之处之一,这个功能允许你写脚本来构建handle,listener或者一些java API的是实现

匿名内部类

可以使用标准的匿名内部类语法来实现java接口,如下
buttonHandler = new ActionListener() {
    actionPerformed( event ) { 
        print(event);
    }
};

button = new JButton();
button.addActionListener( buttonHandler );
frame(button);

上面的代码中,我们创建了个对象来实现ActionListener接口,并把生成的对象分配你变量buttonHandler,并实现actionPerformed(event),

在看下面的代码
actionPerformed( event ) {
    print( event );
}

button = new JButton("Foo!");
button.addActionListener( this );
frame( button ); 

没有实现ActionListener,直接用了'this'关键字注册监听,这就体现了beanshell的自动匹配的特性,上面的actionperformed()方法的到了实现,当有关注册监听的时候,就能自动cast,
前面讲到'this'关键字代表着他在范围的对象,所以上面的代码就可以看成整个脚本implement了actionListener接口,并在脚本中直接实现了actionPerformed()

在看下面的代码:

messageButton( message ) {
    JButton button = new JButton("Press Me");
    button.addActionListener( this );
    JFrame frame = frame( button );
 
    actionPerformed( e ) {
        print( message );
        frame.setVisible(false);
    }
}

messageButton("Hey you!");
messageButton("Another message...");


actionPerformed()方法是在messageButton()内部实现,前面有讲到,在beanshell中方法即可以看成对象,上面代码中的this正是代表着messageButton作用范围所代表的对象,你可以看成这个对象实现了ActionListener()接口

由此可以看出,beanshell在执行的过程中,会根据请求和参数以及返回值来自动匹配接口中的方法

不需要实现接口的所有的方法,只需要实现你使用的方法即可,如果使用你没有实现的方法,beanshell将抛出一个错误,
ml = new MouseListener() {
mousePressed( event ) { ... }
// handle the rest
invoke( name, args ) { print("Method: "+name+" invoked!");
}

由此实现多线程.可以如下方法直接实现
foo() {
    run() {
        // do work...
    }
    return this;
}

foo = foo();
// Start two threads on foo.run()
new Thread( foo ).start();
new Thread( foo ).start();


分享到:
评论

相关推荐

    beanshell学习笔记

    Beanshell 是一个轻量级的Java源代码解释器,它允许开发者通过脚本语言的方式执行Java语句和表达式。...无论是用于快速原型开发,还是在现有Java应用中添加脚本功能,Beanshell都是一个值得学习和使用的工具。

    用BeanShell来运行java脚本

    BeanShell是一个轻量级的Java Scripting引擎,它允许你在运行时执行Java代码,无需编译,极大地提高了开发效率。这种能力对于测试、调试、脚本编写以及自动化任务非常有用。 BeanShell的工作原理是它提供了一个...

    beanshell java源码解释器

    `BeanShell学习.doc` 文件很可能是关于如何使用Beanshell的教程文档,可能包含了从基础到高级的使用示例,包括如何执行Java语句、如何使用 Beanshell API、以及如何与其他Java类库集成等。 至于`beanshell.jar` ...

    BeanShell帮助文档和jar包

    总之,“BeanShell帮助文档和jar包”是学习和使用BeanShell的重要资源,无论是初学者还是经验丰富的Java开发者,都可以从中受益。通过理解和掌握BeanShell,你将拥有一个强大的工具,能够提高你的开发效率和灵活性。

    BeanShell

    BeanShell 是一个轻量级的Java脚本环境,它允许开发者使用类似JavaScript的语法来编写和执行Java代码。BeanShell 的设计目标是提供一个灵活、动态...如果你正在学习或者使用BeanShell,这个压缩包将是一个宝贵的资源。

    beanshell所需文件

    Beanshell 是一个轻量级的Java脚本引擎,它允许你在运行时执行和修改Java代码。这个引擎使得开发者能够在应用程序中动态地引入脚本功能,进行测试、调试或者扩展程序的行为。在Java环境中,Beanshell 提供了一种简单...

    beanshell 源码 jar doc sound

    Beanshell 是一个轻量级的Java脚本引擎,它允许用户在运行时直接执行Java语法的脚本。...通过深入学习和使用这个压缩包中的资源,你可以熟练掌握Beanshell的使用,从而在项目中实现更多创新和便捷的解决方案。

    用BeanShell实现公式管理

    【标题】: 使用BeanShell构建公式管理系统的实践 【描述】: 在复杂的企业级应用如SCM、CRM和ERP中,常常需要用户根据自身需求调整计算参数,以满足特定时期的业务规则。例如,商品折扣率、员工奖金计算等都需要动态...

    beanshell 源码

    这个源码包可能包含了 Beanshell 的完整源代码,对于学习和理解其内部工作原理非常有帮助。Beanshell 可以作为Java应用程序的一部分,提供一个交互式的命令行环境,或者用于在运行时编写和修改Java类。 1. **...

    jmeter-BeanShell简介

    【标题】:“深入理解JMeter中的BeanShell组件” 【描述】:“本文将详细介绍JMeter的BeanShell组件,包括其使用场景、内置变量和方法,帮助读者掌握如何在接口测试中运用BeanShell进行脚本编写。” 【标签】:...

    beanshell-2.0b4.src

    在标题“beanshell-2.0b4.src”中,我们看到的是 Beanshell 的一个源代码版本,2.0b4 表示这是 2.0 版本的第四个β(beta)发布。对于开发者来说,源代码版本意味着可以查看和修改其内部实现,以适应特定需求或进行...

    how to use beanshell to debug java application

    #### 四、插入BeanShell 为了能够在运行时动态地检查和操作对象,我们需要在适当的位置插入BeanShell代码。这一步骤通常涉及以下几个方面: - **确定插入位置**:根据需求选择需要插入BeanShell脚本的位置,例如在...

    beanshell的使用,介绍以及源码

    Beanshell 的源码提供了一个很好的学习机会,让你理解如何实现一个简单的Java虚拟机以及如何解析和执行Java脚本。通过阅读源码,你可以看到它如何解析脚本语句,如何构建和执行字节码,以及如何管理对象和作用域。 ...

    BeanShell2.0b5源码

    BeanShell 是一个轻量级的Java脚本引擎,它允许开发者使用类似JavaScript的语法来执行Java代码。在本文中,我们将深入探讨BeanShell 2.0b5的源码,了解其工作原理、核心功能以及它如何为Java开发提供便利。 1. **...

    BeanShell和Mozilla Rhino详细介绍和例子

    BeanShell和Mozilla Rhino是两种在Java环境中用于动态执行和脚本化的工具,它们各自具有独特的特性和用途。 BeanShell是一个轻量级的Java代码解释器,它的主要特点是免费、可嵌入和具备面向对象的脚本语言特性。...

    java的BeanShell公式执行引擎

    Java的BeanShell是一个轻量级、动态的脚本语言,它是专门为Java平台设计的,允许在运行时执行Java代码或者类似JavaScript的语法。BeanShell在Java应用中常被用来进行快速原型开发、测试以及扩展,它提供了一种简单的...

    导入poi jar包实现使用Beanshell读写Excel文件

    在JMeter测试框架中,我们可以结合使用POI库和BeanShell组件来读取和写入Excel数据,以实现更复杂的测试场景。以下是对这个主题的详细讲解: 首先,Apache POI是一个开源的Java API,它提供了读取、写入和修改MS ...

Global site tag (gtag.js) - Google Analytics