在特定项目中我的Scala文件的开头,我经常有这样的行:
package com.mycompany
package subproject
import common._
import uiutils._
import databinding._
import modeling._
有没有办法创建一个对象ProjectImports
(或包对象)来“预先导入”所有这些导入,这样我就可以简单地编写
import ProjectImports._
而不是整个列表,在我的每个其他项目文件中?
这是否与使用scala
在Predef
中导入scala.`package`
包的方式有关?
答案 0 :(得分:8)
如果您需要的所有导入都是某些特征的成员,则可以轻松完成。如果您有多个具有函数,内部类等的特征,则可以创建从所有特征继承的对象。所以他们所有的东西都可以用简单的import MyObject._
导入。以这种方式导入类变得有点棘手 - 你必须为每个类创建一个类型成员。
有关此技术的更多示例,请参阅scalaz项目中的Casbah Imports object和Scalaz object。