我可以在Scala中同时从多个包中导入吗?

时间:2011-04-21 13:27:32

标签: scala import

在特定项目中我的Scala文件的开头,我经常有这样的行:

package com.mycompany
package subproject

import common._
import uiutils._
import databinding._
import modeling._

有没有办法创建一个对象ProjectImports(或包对象)来“预先导入”所有这些导入,这样我就可以简单地编写

import ProjectImports._

而不是整个列表,在我的每个其他项目文件中?

这是否与使用scalaPredef中导入scala.`package`包的方式有关?

1 个答案:

答案 0 :(得分:8)

如果您需要的所有导入都是某些特征的成员,则可以轻松完成。如果您有多个具有函数,内部类等的特征,则可以创建从所有特征继承的对象。所以他们所有的东西都可以用简单的import MyObject._导入。以这种方式导入类变得有点棘手 - 你必须为每个类创建一个类型成员。

有关此技术的更多示例,请参阅scalaz项目中的Casbah Imports objectScalaz object