简体   繁体   English

检查超类是否是java.lang.Object

[英]Check if the superclass is java.lang.Object

I use 我用

if (clazz.getSuperclass().getName() == "java.lang.Object")

Is there a better way? 有没有更好的办法?

if ( clazz.getSuperclass( ) == Object.class )

There are 2 problems with your original implementation: 原始实现有2个问题:

  1. getSuperclass may return null and you get NPE when you call getName getSuperclass可能会返回null并在调用getName时获得NPE
  2. You use identity equality with a String ( == instead of equals ). 您使用与String相同的标识( ==而不是equals )。 Strangely enough it may work in this case as "java.lang.Object" string is probably internalized. 奇怪的是,它可能在这种情况下起作用,因为"java.lang.Object"字符串可能是内化的。

怎么样

if (clazz.getSuperclass().equals(java.lang.Object.class))

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM