【问题标题】:scala: how to define an object with explicit class typescala:如何定义具有显式类类型的对象
【发布时间】:2013-12-13 06:17:09
【问题描述】:

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

在xxx.scala.html中,定义一个变量abc:ABC,它会报no type found错误,而其他类类型可以在这个文件中轻松定义。

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

【问题讨论】:

    标签: class scala object


    【解决方案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
    

    【讨论】:

    • @user2512057:如果它适合您,您可以接受答案。
    猜你喜欢
    • 1970-01-01
    • 2014-06-03
    • 2012-06-30
    • 2017-09-03
    • 1970-01-01
    • 2011-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多