【发布时间】:2015-07-27 07:45:13
【问题描述】:
我有一个有一些类型别名定义的对象:
case class MyCaseClass(someType: SomeType)
object MyObject extends SomeType {
type SomeType = Int => Boolean
}
IntelliJ 告诉我必须导入 SomeType 以便我的案例类可以看到它,但后来编译器不高兴并抱怨导入语句上的非法循环引用。我有几个其他对象声明如下:
object MyModule {
object Obj1 { ... }
object Obj2 { ... }
object Obj3 { ... }
}
每个 Obj 都引用 MyObject 中定义的类型别名。
是否有封装类型的最佳实践?我应该以某种特征移动它们还是将其视为滥用?有什么建议吗?
【问题讨论】: