2016-10-12 3 views
0

В одном из моих файлов Scala У меня естьПередача экземпляра класса с частным конструктору (Factory Pattern) к функции

object DataObject { 

    def create(...) { 
     new DataObject(...) 
    } 

} 

private case class DataObject(...) { ... } 

с использованием шаблона Factory. Могу ли я предоставить DataObject в качестве входного параметра для

object myfunction { value(in: DataObject): Double = ??? } 

? Я получаю сообщение от IntelliJ, что «Не удается разрешить символ DataObject». Если я удалю private, я больше не получаю ошибку, но я не понимаю, почему я не могу пройти DataObject с private. Я думал, что это только о конструкторе? Также, что я могу сделать, чтобы пройти DataObject afterall?

ответ

2
private case class DataObject(...) { ... } 

делает класс закрытым; Если вы хотите создать конструктор частный:

case class DataObject private(...) { ... }