如果scala case类和对象具有相同的名称,则如何仅导入case类

时间:2014-08-06 11:41:27

标签: scala

我有一个包含这两个元素的scala类Foo.scala

第一个,

case class Foo(
.
.
.
)

其次,

object Foo{
.
.
.
}

现在当我在其他文件中导入Foo时,我想使用case类而不是Object,但是当我导入文件时,对象实例在Foo中返回< =这是对象,(我需要做) Foo.apply,Foo.tupled)

无论如何,我可以让Foo充当案例类然后作为对象。

2 个答案:

答案 0 :(得分:0)

您的scala名称空间中存在歧义。该问题的一个简单解决方案是将case类嵌套在对象内部,然后使用

导入它

import Foo.Foo

另一个解决方案是将它们放在单独的包中。根据您的系统设计,这可能会影响您的包装的凝聚力,在我看来这可能更重要。

答案 1 :(得分:0)

你可以试试这个

 (Foo.apply _).tupled