我们可以==
在Class
变量上做一个而不是equals
期望相同的结果吗?
例如:
Class clazz = xyz;
Run Code Online (Sandbox Code Playgroud)
案例A:
if(clazz == Date.class) {
// do something
}
Run Code Online (Sandbox Code Playgroud)
案例B:
if(Date.class.equals(clazz)) {
// do something
}
Run Code Online (Sandbox Code Playgroud)
案例A和案例B的功能是否相同?
Pet*_*rey 84
类是final,因此不能覆盖equals().它的equals()方法继承自读取的Object
public boolean equals(Object obj) {
return (this == obj);
}
Run Code Online (Sandbox Code Playgroud)
所以是的,它们对于Class或任何不覆盖的类型都是相同的 equals(Object)
要回答第二个问题,每个ClassLoader只能加载一次类,并且总是为给定的完全限定名称提供相同的Class.