【发布时间】:2013-10-30 12:08:45
【问题描述】:
根据我在 X 中传递的对象类型,我需要使用 apply 方法。我可以指定要使用的修饰符(Y 或 Z)。我需要使用这样的“跟随”函数的语法:
(object of type B) following Y
或
(object of type C) following Z
代码如下:
trait A
{
def following(modifier: X) = modifier(this)
}
case class B() extends A{}
case class C() extends A{}
trait X {}
object Y extends X
{
apply(obj: B):B = {}
apply(obj: C):C = {}
}
object Z extends X
{
apply(obj: B):B = {}
apply(obj: C):C = {}
}
编译器在我实现“以下”功能的行中给出错误。我做错了什么?
【问题讨论】:
-
你期望这个函数的结果是什么,你得到了什么错误?
-
例如:我需要更改 B 类对象的一个字段。因此,修饰符 Y 采用 B 类型的对象,更改其中一个字段(我已跳过其逻辑)并返回一个相同类型的对象,但其中一个字段已更改。
-
我建议将该信息添加到问题中(例如,显示预期用途和结果)以及您遇到的实际错误。