黒猿の家:Scalaのパッケージオブジェクト

パッケージには、クラス、オブジェクトおよび性格特性を含めることができますが、関数や変数の定義を含めることはできません。残念ながら、これは、Java仮想マシンの制限があります。

代わりに、より合理的なアプローチである一定のUtilsのオブジェクト、の機能またはパッケージ化するツールを追加します。

外観パッケージオブジェクトは、この制限を解決することです。各パッケージは、パッケージオブジェクトを持つことができます。あなたは、親パッケージと同じ名前の子パッケージでそれを定義する必要があります。コンパイル時にJava仮想マシンた後、Javaがサポートされていない、Scalaは常にこの制限を壊すのが得意で、Scalaは抜け出す、そして素直にちょうど開発、Scalaのコンパイラ、またはの.classファイルを容易にするために、戻って、JVMの内部でそれを置きますラン

package com.nick.impatient

package object people {
  val defaultName = "Nick"
}
package people {
  class Person {
    var name = defaultName // 从包对象拿到的常值
  }
}

ます。https://www.jianshu.com/p/a6fa8a041599で再現

おすすめ

転載: blog.csdn.net/weixin_33690367/article/details/91182484