我想了解Class.forName(“ ClassName”)和ClassObject.getClass是否都
返回类的运行时实例。那么,为什么要比较从这两者获得的Class对象,则获取一个布尔值false(如果我们使用==或equals进行比较)。
我也想知道在类名上调用.class方法的确切用途。我读到它是在编译时等确定的,但目的是什么。 Class.forName(“ ClassName”)是否足够?
谢谢
最佳答案
Class.forName
加载并初始化该类。 obj.getClass()
返回加载到permgen中的类对象。如果该类由同一类加载器加载,则==
必须返回true。当您看到false
进行==比较时,意味着它们由不同的类加载器加载。
关于java - ClassObject.getClass,ClassName.class和Class.forName(“ClassName”)之间的区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12337439/