java – 检查类类型(.class)等于其他类类型

以下代码是否有效?

void myMethod (Class classType) {
   if (classType == MyClass.class) {
       // do something
   }
}

myMethod (OtherClass.class);

如果没有其他方法,我可以检查一个传递的.class(类类型)是否是MyClass类型?

Thanx!

是的,该代码是有效的 – 如果两个类已由同一个类加载器加载。如果你希望这两个类被视为相等的,即使它们已经被不同的类加载器加载,可能来自不同的位置,基于完全限定名称,那么只需比较完全限定名称。

请注意,您的代码仅考虑完全匹配,但它不会提供某种“赋值兼容性”(例如)instanceof在查看是否引用作为给定类的实例的对象时执行的操作。为此,您需要查看Class.isAssignableFrom。

http://stackoverflow.com/questions/8850951/checking-a-class-type-class-is-equal-to-some-other-class-type

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:java – 检查类类型(.class)等于其他类类型