Можно ли импортировать из нескольких пакетов все сразу в Scala?
В начале моих Scala файлов в конкретном проекте у меня часто бывают такие строки:
package com.mycompany
package subproject
import common._
import uiutils._
import databinding._
import modeling._
Есть ли способ создать объект ProjectImports
(или объект пакета), который "префикс" всех этих импортов, чтобы я мог просто написать
import ProjectImports._
вместо всего списка в каждом из моих других файлов проекта?
Связано ли это с тем, как пакет scala
импортируется в Predef
с помощью scala.`package`
?
Ответы
Ответ 1
Вы можете сделать это легко, если все необходимые вам импортные элементы являются элементами некоторых свойств. Если у вас есть несколько черт с функциями, внутренними классами и т.д., Вы можете создать объект, унаследованный от всех них. Таким образом, все их материалы можно импортировать с помощью простого import MyObject._
. Импорт класса таким образом стал немного сложным - вам нужно создать член типа для каждого класса.
Дополнительные примеры этой техники см. в разделе Casbah Импортировать объект и Объект Scalaz в проекте scalaz.