【Scala】看代码,初步了解Apply方法

601-赵同学

发表文章数:191

热门标签

,
首页 » 大数据 » 正文

class ApplyTest(val name:String) {
  /**
   * apply源码
   * def apply(x: Int, xs: Int*): Array[Int] = {
   *    val array = new Array[Int](xs.length + 1)
   *    array(0) = x
   *    var i = 1
   *    for (x <- xs.iterator) { array(i) = x; i += 1 }
   *    array
   * }
   */
}

/**
 * apply方法是scala中特殊的方法,某种程度上可以理解为是class的一种构造方法,通过apply创建对象实例
 * apply方法必须定义在类的伴生对象中
 * 在创建对象实例时,如果不加new,就回去伴生对象中寻找有没有apply方法,有就调用,没有就报错
 */
 
//伴生对象
object ApplyTest {
  def apply(name:String): ApplyTest = new ApplyTest(name)
}

object Use {
  def main(args: Array[String]): Unit = {
    //通过new创建
    val qiuBojun = new ApplyTest("QiuBojun")
    //通过调用apply方法创建
    val leiJun = ApplyTest("LeiJun")
  }
}
标签:

未经允许不得转载:作者:601-赵同学, 转载或复制请以 超链接形式 并注明出处 拜师资源博客
原文地址:《【Scala】看代码,初步了解Apply方法》 发布于2020-04-10

分享到:
赞(0) 打赏

评论 抢沙发

评论前必须登录!

  注册



长按图片转发给朋友

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

Vieu3.3主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录