object GoodReturnType extends Dynamic {
def applyDynamic(method: String)(args: Any*) = {
method match {
case "foo" => 25
case "bar" => 14
}
}
}
GoodReturnType对象的方法applyDynamic具有Int返回类型。正如预期的那样,对其动态方法的调用也返回Int。
scala> GoodReturnType.foo()
res0: Int = 25
如果我们尝试添加另一个具有不同返回类型的动态方法,则applyDynamic的返回类型将是最常见的类型(即Any)。和所有动态方法一样。
object BadReturnType extends Dynamic {
def applyDynamic(method: String)(args: Any*) = {
method match {
case "foo" => 25
case "bar" => 14
case "baz" => "muahahaha!"
}
}
}
scala> BadReturnType.foo()
res1: Any = 25
是否可以有一个具有多个具有不同返回类型的动态方法的类?