Scala/Java 中 `getClass` 方法的用法?

The usage of `getClass` method in Scala/Java?

我发现这很好用(Scala 代码)

class myClass(i:Int) {

}

val a = new myClass(1)

但这行不通:

val b = a.getClass
val c = new b(1)

编译器会说无法解析 "b"。

有人对此有想法吗? 这里的bmyClass有什么区别? 这是否意味着 myClass 不是对象,而 b 是对象?

new 期望源代码中有一个 class 名称。编译器不会尝试将 b 读取为以某种方式解析为 class 名称的表达式。

你似乎想做的是反射:在运行时使用一个对象来描述 class(你的 b)并从中获取一个实例。

myClass 类型 b 是类型 java.lang.Classvalue(或 term)。 new需要前一种。