隐式转换的结果类型必须比AnyRef更具体

时间:2017-07-13 16:53:21

标签: scala

我在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),
你知道吗?感谢

1 个答案:

答案 0 :(得分:4)

仅供参考,对象的Scala等价物是AnyRef。您可以在案例中使用类型参数。

case class MyClass[T](nameAttribute: String, get: () => T)