在Scala / Java中使用`getClass`方法?

时间:2015-05-15 03:56:17

标签: java scala oop object classloader

我觉得这很有效(Scala代码)

class myClass(i:Int) {

}

val a = new myClass(1)

但这不起作用:

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

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

有没有人有这方面的想法? 这里bmyClass之间有什么区别? 这是否意味着myClass不是对象,而b是对象?

2 个答案:

答案 0 :(得分:2)

myClass类型bjava.lang.Class类型的(或 term )。 new需要前者。

答案 1 :(得分:1)

new需要源代码中的类名。编译器不会尝试将b读作一个以某种方式解析为类名的表达式。

您似乎要做的是反思:使用对象在运行时描述类(您的b)并从中获取实例。