小编典典

ClassObject.getClass,ClassName.class和Class.forName(“ ClassName”)之间的区别

java

我想了解Class.forName(“
ClassName”)和ClassObject.getClass是否都返回该类的运行时实例。然后为什么在比较从这两个对象获得的结果Class对象时获取一个布尔值false(如果我们使用==或equals进行比较)。
我也想知道在类名上调用.class方法的确切用途。我读到它是在编译时等确定的,但目的是什么。Class.forName(“ ClassName”)是否足够?
谢谢


阅读 215

收藏
2020-11-01

共1个答案

小编典典

Class.forName加载并初始化类。obj.getClass()返回加载到permgen中的类对象。如果该类由同一类加载器加载,==则必须返回true。当您看到false==比较时,意味着它们由不同的类加载器加载。

2020-11-01