1

我写的这行代码似乎是错误的,但实际上可以编译:

class A extends {}

A 从哪个类扩展?

4

2 回答 2

6

实际上extends {}总是被脱糖到 AnyRef 构造中,它是java.lang.Object. 例如,在结构类型中,您可以编写:

def test[A <: {def some: String}](a: A) = a

{def some: String}AnyRefwith的子类型some

test: [A <: AnyRef{def some: String}](a: A)A
于 2013-08-07T05:26:48.860 回答
1

A 扩展自 java.lang.Object。您可以在 scala 解释器中尝试以下代码:

class A extends {}
val a = classOf[A].getSuperclass

输出是:

a: Class[_ >: A] = class java.lang.Object
于 2013-08-07T05:12:45.903 回答