Can we do a == on a Class variable instead of equals and expect the same result?
For example:
Class clazz = xyz;
Case A:
if(clazz == Date.class) {
// do something
}
Case B:
if(Date.class.equals(clazz)) {
// do something
}
Are Case A and Case B functionally same?
Class is final, so its equals() cannot be overridden. Its equals() method is inherited from Object which reads
So yes, they are the same thing for a Class, or any type which doesn’t override
equals(Object)To answer your second question, each ClassLoader can only load a class once and will always give you the same Class for a given fully qualified name.