java - 检查父类(super class)是否为 java.lang.Object

标签 java reflection

我用

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

有没有更好的办法?

最佳答案

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

您的原始实现存在 2 个问题:

  1. getSuperclass 可能会返回 null 并且当您调用 getName 时会得到 NPE
  2. 您对字符串使用身份相等(== 而不是 equals )。奇怪的是,它在这种情况下可能会起作用,因为 "java.lang.Object" 字符串可能已被内部化。

关于java - 检查父类(super class)是否为 java.lang.Object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2946080/

相关文章:

java - 有没有办法找到一个字段是否是与 isPrimitive() 相同的 boolean 值?

java - 创建相差 1 个字符的单词图

java.lang.ClassNotFoundException : org. apache.commons.fileupload.FileItemFactory

Javafx 网格 Pane 中心元素

java - 两个符号之间的正则表达式文本

c# - 如何在 C# 中迭代​​对象的所有属性?

c# - 动态创建数组并设置元素

scala - 我想在运行时获取变量的类型

swift - Swift 中 AnyObject 的反射(reflection)

java - 如何在简单的Servlet中使用Spring Data JPA?