简单的通用函数,不编译

时间:2015-01-21 18:27:57

标签: scala generics

请在Scala中查看此函数,并告诉我它为什么不编译。

def alternative_identity[A <: Any, B <: Any](obj: A): B = {
  obj
}

我知道函数本身没有意义,但是我试图解决更复杂的问题,这个例子说明了我所遇到的根本问题。提前谢谢!

1 个答案:

答案 0 :(得分:4)

它不会编译,因为objA类型的对象,并且您从返回类型为B

的函数返回它

即使ABAny的子类型,也无法知道BA的基类。

例如,StringIntAny的子类型,但它们不能互换使用。