我们可以==对Class变量进行equals运算而不是期望相同的结果吗?
==
Class
equals
例如:
Class clazz = xyz;
情况A:
if(clazz == Date.class) { // do something }
情况B:
if(Date.class.equals(clazz)) { // do something }
案例A和案例B在功能上是否相同?
类是最终的,因此不能覆盖其equals()。它的equals()方法是从Object继承的,该Object读取
public boolean equals(Object obj) { return (this == obj); }
所以是的,对于类或任何不重写的类型,它们是相同的 equals(Object)
equals(Object)
为了回答您的第二个问题,每个ClassLoader只能加载一个类一次,并且对于给定的完全限定名称,它将始终为您提供相同的Class。