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

避免Scala类和伴随对象中的重复类型别名,scala,companion-object,type-alias,Scala,Companion Object,Type Alias,我是Scala的新手,我有一个Scala程序,其中包含一个类和一个伴生对象,我想使用一个类型别名: 定义类的方法 我还想在类之外使用别名。为此,我发现在同伴对象中定义别名、从同伴对象导入别名非常有用。我在同伴对象中也定义了一些隐式,所以这很自然 具体代码可在上获得,类型别名为PMMLPrediction,类为SurusRDDFunctions。目前代码可以工作,但我在类和同伴中都定义了别名,这不是很好。如果我删除了类中别名的定义,那么类将无法找到它,这看起来很奇怪。所以我想我可能做错了什么,有什

我是Scala的新手,我有一个Scala程序,其中包含一个类和一个伴生对象,我想使用一个类型别名:

  • 定义类的方法
  • 我还想在类之外使用别名。为此,我发现在同伴对象中定义别名、从同伴对象导入别名非常有用。我在同伴对象中也定义了一些隐式,所以这很自然
  • 具体代码可在上获得,类型别名为PMMLPrediction,类为SurusRDDFunctions。目前代码可以工作,但我在类和同伴中都定义了别名,这不是很好。如果我删除了类中别名的定义,那么类将无法找到它,这看起来很奇怪。所以我想我可能做错了什么,有什么想法吗

    非常感谢您的帮助

    您好


    胡安

    给定伴星对象

    object Example {
      type MyString = String
    }
    
    class Example (val name: Example.MyString) { }
    
    class Example {
      import Example._
    
      val name: MyString = "example"
    }
    
    您可以直接通过配对对象访问该类型

    object Example {
      type MyString = String
    }
    
    class Example (val name: Example.MyString) { }
    
    class Example {
      import Example._
    
      val name: MyString = "example"
    }
    
    或者从伴生对象导入它

    object Example {
      type MyString = String
    }
    
    class Example (val name: Example.MyString) { }
    
    class Example {
      import Example._
    
      val name: MyString = "example"
    }
    

    给定伴星

    object Example {
      type MyString = String
    }
    
    class Example (val name: Example.MyString) { }
    
    class Example {
      import Example._
    
      val name: MyString = "example"
    }
    
    您可以直接通过配对对象访问该类型

    object Example {
      type MyString = String
    }
    
    class Example (val name: Example.MyString) { }
    
    class Example {
      import Example._
    
      val name: MyString = "example"
    }
    
    或者从伴生对象导入它

    object Example {
      type MyString = String
    }
    
    class Example (val name: Example.MyString) { }
    
    class Example {
      import Example._
    
      val name: MyString = "example"
    }
    

    给定伴星

    object Example {
      type MyString = String
    }
    
    class Example (val name: Example.MyString) { }
    
    class Example {
      import Example._
    
      val name: MyString = "example"
    }
    
    您可以直接通过配对对象访问该类型

    object Example {
      type MyString = String
    }
    
    class Example (val name: Example.MyString) { }
    
    class Example {
      import Example._
    
      val name: MyString = "example"
    }
    
    或者从伴生对象导入它

    object Example {
      type MyString = String
    }
    
    class Example (val name: Example.MyString) { }
    
    class Example {
      import Example._
    
      val name: MyString = "example"
    }
    

    给定伴星

    object Example {
      type MyString = String
    }
    
    class Example (val name: Example.MyString) { }
    
    class Example {
      import Example._
    
      val name: MyString = "example"
    }
    
    您可以直接通过配对对象访问该类型

    object Example {
      type MyString = String
    }
    
    class Example (val name: Example.MyString) { }
    
    class Example {
      import Example._
    
      val name: MyString = "example"
    }
    
    或者从伴生对象导入它

    object Example {
      type MyString = String
    }
    
    class Example (val name: Example.MyString) { }
    
    class Example {
      import Example._
    
      val name: MyString = "example"
    }