Scala中的匿名子类
发布时间:2020-12-16 18:22:26 所属栏目:安全 来源:网络整理
导读:我试图理解 Scala中的Anonymous子类.我写了下面的代码: package com.sudipta.practice.chapter8class Person(val name: String) { def printMyName = println("Name: " + name)}class AnonymousSubclass(val name: String) { val anonymousSubclass = new P
我试图理解
Scala中的Anonymous子类.我写了下面的代码:
package com.sudipta.practice.chapter8 class Person(val name: String) { def printMyName = println("Name: " + name) } class AnonymousSubclass(val name: String) { val anonymousSubclass = new Person(name){ def sayHello = "Hello," + name def sayBye = "Bye," + name override def printMyName = println("My name is: " + name) } } object testPerson extends App { def printAnonDetails (myObject: AnonymousSubclass) = { myObject.anonymousSubclass.printMyName } val personObject = new Person("Sudipta") personObject.printMyName val anonObject = new AnonymousSubclass("Sudipta") printAnonDetails(anonObject) } 但是我无法理解Scala中Anonymous Subclass的用法/优点是什么.如果您有任何积分,请在此处分享.谢谢. Regadrs, 解决方法
在Scala中使用匿名子类与使用
anonymous subclasses in Java没什么不同.在Java中最常见的用法可能是在
observer pattern中,如第一个链接所示.
该示例直接转换为Scala: button.addActionListener(new ActionListener() { def actionPerformed(e: ActionEvent) { // do something. } }); 但是,在Scala中你可能宁愿使用匿名函数(如果库允许你): button.addActionListener(e => /* do something */) 在Scala中,您可以在这种情况下使用匿名子类,如果: >您的客户端要求您扩展给定的接口 这些当然只是一些例子.在没有命名类对您有意义的任何位置,您可以使用匿名(子)类. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Bootstrap 通过一些简单的 HTML 标签和扩展的类即可创建出不
- bootstrap theme 的作用
- 处理angular2关于date格式化浏览器不兼容的问题
- angularjs – 使用Angular Translate在转发器上连接字符串
- docker – add-migration:无法将参数绑定到参数’Path’
- WebService学习之旅(二)JAX-WS基于Web容器发布WebService
- 如何在angular2中应用嵌套组件的表单验证
- shell实现把xcode打包的.app文件转换成.ipa文件
- angularjs popup-table 弹出框表格指令
- 如何使用按钮添加更多输入字段 – Angular 2动态表单