面向Java开发人员的Scala指南 - 关于特征和行为 - 编程入门网
get/set 方法,因此我必须自行编写,如清单 8 所示:
清单 8. Scala 的 Person POJO,第 3 种形式
面向Java开发人员的Scala指南 - 关于特征和行为(6)时间:2011-01-30 IBM Ted Neward应该具备的出色特征 特征不是一种函数编程 概念,而是十多年来反思对象编程的结果。实际上,您很有可能正在简单的 Scala 程序中使用以下特征,只是没有意识到而已: 清单 9. 再见,糟糕的 main()!
Application 特征定义了一直都是手动定义的 main() 的方法。实际上,它包含一个有用的小工具:计时器,如果系统属性 scala.time 传递给了 Application 实现代码,它将为应用程序的执行计时,如清单 10 所示: 清单 10. 时间就是一切
JVM 中的特征 任何足够高级的技术都近乎魔术。 — Arthur C Clarke 在这个时候,有必要提出这样一个问题,这种看似魔术的接口与方法结构(即 特征)是如何映射到 JVM 的。在清单 11 中,我们的好朋友 javap 展示了魔术背后发生了什么: 清单 11. Person 内幕 $ javap -classpath C:\Prg\scala-2.7.0-final\lib\scala-library.jar;classes Person Compiled from "Person.scala" public class Person extends java.lang.Object implements BoundPropertyBean,scala. ScalaObject{ public Person(java.lang.String, java.lang.String, int); public java.lang.String toString(); public void setAge(int); public void setLastName(java.lang.String); public void setFirstName(java.lang.String); public void age_$eq(int); public int age(); public void lastName_$eq(java.lang.String); public java.lang.String lastName(); public void firstName_$eq(java.lang.String); public java.lang.String firstName(); public int $tag(); public void firePropertyChange(java.lang.String, java.lang.Object, java.lang .Object); public void removePropertyChangeListener(java.beans.PropertyChangeListener); public void addPropertyChangeListener(java.beans.Pro |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |