2015-02-15 3 views
0

Я новичок в Scala, и у меня есть программа Scala с классом и объектом компаньон, и я хочу использовать псевдоним типа, который используется:Избегайте дублирования типа псевдоним в Scala класса и компаньона объекта

  1. Определить методы класса.
  2. Также я хочу использовать псевдоним вне класса. Для этого мне полезно определить псевдоним в сопутствующем объекте, чтобы импортировать псевдоним из объекта-компаньона. У меня также есть некоторые импликации, определенные в сопутствующем объекте, так что это просто естественно.

Конкретный код доступен по адресу https://github.com/juanrh/Surus/blob/1cfd55ed49c4d1b22e53babe07bcf44fd74e3072/src/main/scala/org/surus/spark/SurusRDDFunctions.scala, псевдоним типа PMMLPrediction и класс SurusRDDFunctions. В настоящее время код работает, но я определил псевдоним как в классе, так и в компаньоне, что не очень приятно. Если я удалю определение псевдонима в классе, то класс не сможет его найти, что кажется странным. Поэтому я думаю, что, вероятно, я что-то делаю неправильно, какие-то идеи?

Большое спасибо за вашу помощь!

Привет,

Хуан

ответ

3

Учитывая компаньоном объект

object Example { 
    type MyString = String 
} 

Вы можете получить доступ к типу непосредственно до объекта компаньона

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

Или импортировать его из компаньон объект

class Example { 
    import Example._ 

    val name: MyString = "example" 
} 
+0

Это сработало правильно, спасибо большое! – juanrh0011

+0

Отлично! Я предлагаю вам отметить наилучший ответ (на ваш взгляд), который решает ваш вопрос как «принятый ответ» (вы всегда можете изменить принятый ответ позже). – mucaho

+0

done !, Я не знал об этой функции – juanrh0011

Смежные вопросы