请在Scala中查看此函数,并告诉我它为什么不编译。
def alternative_identity[A <: Any, B <: Any](obj: A): B = {
obj
}
我知道函数本身没有意义,但是我试图解决更复杂的问题,这个例子说明了我所遇到的根本问题。提前谢谢!
答案 0 :(得分:4)
它不会编译,因为obj
是A
类型的对象,并且您从返回类型为B
即使A
和B
是Any
的子类型,也无法知道B
是A
的基类。
例如,String
和Int
是Any
的子类型,但它们不能互换使用。