scala:如何使用显式类类型定义对象

时间:2013-12-13 06:17:09

标签: class scala object

我理解对象和类之间的区别。 Object是具有匿名类类型的单例。但是在xxx.scala.html文件中的play框架中,它不会将对象名称作为类型名称进行重新调整。它报告没有找到类型的错误。例如: 对象ABC扩展枚举{ .... }

在xxx.scala.html中,定义一个变量abc:ABC,它将报告没有找到类型的错误,而其他类类型可以在此文件中轻松定义。

如何定义具有显式类名的对象,以便我可以使用它?

1 个答案:

答案 0 :(得分:1)

您可以随时使用ObjectName.type。例如:

trait Test
object A extends Test

def test(a: A.type) = a

test(A) // compiles fine
test(new Test{}) // compilation error

请注意,如果是object ABC extends Enumeration{...},您应该使用ABC.Value作为实例类型:

object ABC extends Enumeration{ val A, B, C = Value}

def test(a: ABC.Value) = a

scala> test(ABC.A)
res0: ABC.Value = A