Pro*_*001 4 java reflection class
我的理解是java.lang.Class是“所有反射操作的入口点”。我还了解到,当您实例化一个新对象时,如果这是第一次需要它,它将加载该对象的类。
Something something = new Something() 
调用Object.getClass()(或者在我们的例子中something.getclass())是否使用反射,或者只是类本身内部的方法使用反射?
我认为something.getClass()不使用反射,因为类的引用已被加载,并且 getClass 只是该引用的 getter,但我只是想确定一下。
检查 Java 反射定义的权威来源,Java 语言规范,第 1.4 节。与预定义类和接口的关系,简单地说:
因此,本规范没有详细描述反射。许多语言结构在核心反射 API (
java.lang.reflect) 和语言模型 API (javax.lang.model) 中都有类似的结构,但这里通常不讨论这些结构。
可能需要 Java 虚拟机特殊支持的类包括那些支持:
- 反射,例如包中的类
java.lang.reflect和类Class。
因此,如果您满足以下条件,则可以使用反射:
Class类型,例如使用Foo.class或obj.getClass()Class.forName()java.lang.reflectjavax.lang.model请注意,在您第一次调用它之前Class,返回的对象getClass()实际上并不存在。出于性能原因,类以不同的方式在内部存储,并且像instanceof函数一样的操作无需实例化更重的Class对象。