在Java 中,选择使用a.getClass()
存在哪些优缺点?或 A.class
?任何一个都可以在 Class<?>
的任何地方使用是预期的,但我想在不同的情况下使用这两种方法会有性能或其他微妙的好处(就像 Class.forName()
和 ClassLoader.loadClass()
一样。
最佳答案
我不会比较它们的优缺点,因为它们有不同的目的,而且很少在两者之间做出“选择”。
a.getClass()
返回a
的运行时类型。即,如果您有A a = new B();
那么a.getClass()
将返回B
类。A.class
静态评估为A
类,并用于通常与反射相关的其他目的。
在性能方面,可能存在可衡量的差异,但我不会说什么,因为最终它取决于 JVM 和/或编译器。
本帖已改写为文章 here .
关于java - Java中的a.getClass()和A.class有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10947768/