我想了解 Class.forName("ClassName") 和 ClassObject.getClass 是否都有效
返回类的运行时实例。那么为什么在比较从两者获得的 Class 对象时会获取一个 boolean 值 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/