我有两个类"ClassA"one_answers"ClassB"。我想从ClassA *中获得类对象,显然我做不到。
class ClassA {
ClassB.getClass() // <-- won't compile
}
class ClassB {
}
惟一的方法是实例化特定的类,并从新创建的对象调用getClass()。但我真的不想为此创建一个新对象!class ClassA {
new ClassB().getClass() // <-- compiles, but I don't want to create a new object!
}
class ClassB {
}
在Java中这是直接的。Scala做同样的事情有什么问题?
*对于上下文,我最终想获得ClassB的FQCN。
classOf[ClassB]
将给出ClassB的class对象。
下面是工作示例:
class ClassA {
val bClass = classOf[ClassB]
}
class ClassB {
}
object Main {
def main(args: Array[String]): Unit = {
println(new ClassA().bClass/*<- here you got java.lang.Class object*/.getName())
}
}
Scala 2.11.1将ClassA编译为:
@ScalaSignature(bytes="...")
public class ClassA {
private final Class<ClassB> bClass = ClassB.class;
public Class<ClassB> bClass() { return this.bClass; }
}