避免Scala类和随播对象中的重复类型别名

时间:2015-02-15 20:30:30

标签: scala companion-object type-alias

我是Scala的新手,我有一个带有类和伴随对象的Scala程序,我想使用一个使用的类型别名:

  1. 定义班级的方法。
  2. 我还想在课堂外使用别名。为此我发现在伴侣对象中定义别名很有用,从伴侣对象导入别名。我也在伴侣对象中定义了一些含义,所以这很自然。
  3. 具体代码可在https://github.com/juanrh/Surus/blob/1cfd55ed49c4d1b22e53babe07bcf44fd74e3072/src/main/scala/org/surus/spark/SurusRDDFunctions.scala获得,类型别名是PMMLPrediction,类是SurusRDDFunctions。目前代码有效,但我已经在类和伴侣中定义了别名,这不是很好。如果我删除了类中别名的定义,那么类就无法找到它,这看起来很奇怪。所以我想我可能做错了什么,有什么想法吗?

    非常感谢您的帮助!

    问候,

    胡安

1 个答案:

答案 0 :(得分:3)

给定伴随对象

object Example {
  type MyString = String
}

您可以直接访问该类型到配套对象

class Example (val name: Example.MyString) { }

或者从配套对象

导入它
class Example {
  import Example._

  val name: MyString = "example"
}