理解String.class.getClass()并不难,这意味着返回一个表示String对象的运行时类的Class对象.但是当调用Class.class.getClass()时会发生什么,我可以理解它返回一个Class对象来表示Class对象本身的运行时类吗?如何在Java反射API中实现?
解决方法:
a Class object that represent the run time class of Class object itself?
是.
但String.class.getClass()是一回事.
String.class已经表示“表示String类的Class类型的对象”.调用.getClass()就意味着“表示Class类的Class类型的对象”,因为我们在类型为Class的对象上调用它.
如果你有一个String对象,例如“hi mom”,那么你可以用.getClass():(“hi mom”).getClass()来反映它. IIRC,这将在正常情况下返回与String.class完全相同的对象,因为每个类只有一个Class对象(根据使用的ClassLoader).
How can this be implemented in Java reflection API?
每次加载类的字节码时,都会创建一个Class对象并将其与该字节码相关联.每个对象在概念上保持对表示其类的Class实例的“隐藏”引用,该实例由构造函数自动设置.类对象将此引用设置为表示Class类的Class对象.特别是,表示Class类的Class对象具有对自身的引用.
标签:java,reflection,class
来源: https://codeday.me/bug/20190530/1186722.html