我在scala 2.11.8中开发了一个case类,如下所示:
case class MyClass(nameAttribute: String, get: () => Object)
我无法在第二个参数中替换Object,因为我将函数放置为具有不同的返回类型。 如果我实例化这一行,我会在标题中得到错误:
MyClass("MyAttribute_Long", () => 1l)
这行有两个错误:
type mismatch;
found : Long(1L)
required: Object
MyClass("MyAttribute_Long", () => 1l),
和
the result type of an implicit conversion must be more specific than AnyRef
MyClass("MyAttribute_Long", () => 1l),
你知道吗?感谢
答案 0 :(得分:4)
仅供参考,对象的Scala等价物是AnyRef。您可以在案例中使用类型参数。
case class MyClass[T](nameAttribute: String, get: () => T)