我理解对象和类之间的区别。 Object是具有匿名类类型的单例。但是在xxx.scala.html文件中的play框架中,它不会将对象名称作为类型名称进行重新调整。它报告没有找到类型的错误。例如: 对象ABC扩展枚举{ .... }
在xxx.scala.html中,定义一个变量abc:ABC,它将报告没有找到类型的错误,而其他类类型可以在此文件中轻松定义。
如何定义具有显式类名的对象,以便我可以使用它?
答案 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