理论教育 SAM转换及其在界面开发中的应用

SAM转换及其在界面开发中的应用

时间:2023-11-24 理论教育 版权反馈
【摘要】:SAM的全称是Single Abstract Method,即单一抽象方法。通常这些接口只有单个抽象方法,在Java中被称为SAM类型。图3-3Java代码的运行结果2.Scala的SAM转换 在Scala中,更多地关注业务逻辑的实现,可以利用一个隐式转换,传入一个参数给addActionListener,在addActionListener中将计数器加1。Scala语言中swing界面开发SAM转换。Scala中SAM代码改造以后,代码更加简洁清晰,同样实现计数器的功能,每次单击界面上的counter按钮,就会在Console视图总数字上加1。

SAM转换及其在界面开发中的应用

SAM的全称是Single Abstract Method,即单一抽象方法。在Scala中,如果要某个函数做某件事,可以传递另一个函数参数给这个函数。而在Java中,并不支持传送函数参数,Java的实现方式是将动作放在一个实现某接口的类中,然后将该类的一个实例传递给另外一个方法。通常这些接口只有单个抽象方法(Single Abstract Method),在Java中被称为SAM类型。如Java的函数接口包含了单个抽象方法,函数接口也为Java 8 Lambda表达式提供了基础。

1.Java的实现 Java语言中swing界面开发代码示例,在单击界面上的按钮时候递增一个计数器。如例3-10所示。

【例3-10】Java语言中swing界面开发代码示例。

978-7-111-54169-1-Chapter03-15.jpg

978-7-111-54169-1-Chapter03-16.jpg

这些Java代码中包含很多Java语言中的样板代码,例如:override def action Performed(event:ActionEvent)等。Java代码的运行结果如下,每次单击界面上的counter按钮,就会在Console视图总数字上加1,运行结果如图3-3所示。单击界面上conuter按钮9次,Console视图打印输出计数器的值,依次显示1到9。

978-7-111-54169-1-Chapter03-17.jpg(www.daowen.com)

图3-3 Java代码的运行结果

2.Scala的SAM转换 在Scala中,更多地关注业务逻辑的实现,可以利用一个隐式转换,传入一个参数给addActionListener,在addActionListener中将计数器加1。如例3-11所示。

【例3-11】Scala语言中swing界面开发SAM转换。

978-7-111-54169-1-Chapter03-18.jpg

978-7-111-54169-1-Chapter03-19.jpg

Scala中SAM代码改造以后,代码更加简洁清晰,同样实现计数器的功能,每次单击界面上的counter按钮,就会在Console视图总数字上加1。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈