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"。
有人对此有想法吗?
这里的b
和myClass
有什么区别?
这是否意味着 myClass
不是对象,而 b
是对象?
new
期望源代码中有一个 class 名称。编译器不会尝试将 b
读取为以某种方式解析为 class 名称的表达式。
你似乎想做的是反射:在运行时使用一个对象来描述 class(你的 b
)并从中获取一个实例。
myClass
是 类型 。 b
是类型 java.lang.Class
的 value(或 term)。 new
需要前一种。
我发现这很好用(Scala 代码)
class myClass(i:Int) {
}
val a = new myClass(1)
但这行不通:
val b = a.getClass
val c = new b(1)
编译器会说无法解析 "b"。
有人对此有想法吗?
这里的b
和myClass
有什么区别?
这是否意味着 myClass
不是对象,而 b
是对象?
new
期望源代码中有一个 class 名称。编译器不会尝试将 b
读取为以某种方式解析为 class 名称的表达式。
你似乎想做的是反射:在运行时使用一个对象来描述 class(你的 b
)并从中获取一个实例。
myClass
是 类型 。 b
是类型 java.lang.Class
的 value(或 term)。 new
需要前一种。