首页 文章

Java中的getClass()实际返回了什么?

提问于
浏览
4

我是一名C程序员,现在正在学习Java . 我在使用Java消化getClass()方法时遇到了麻烦,我非常感谢您提供的任何见解 . 根据我的理解,C++'s dynamic_cast和Java 's getClass() are loosely related in the sense that they are different means to the same end. In C++, I could use dynamic_cast to determine polymorphic types, whereas in Java, I could use getClass() to determine an object'的派生类类型最多 . 使用dynamic_cast,我可以找回指针;使用getClass(),我得到一个类,但是返回类型(类)实际代表什么?它是指向 class 的指针吗?

1 回答

  • 4

    根据我的理解,C的dynamic_cast和Java的getClass()松散相关

    C typeid operator将提供更好的比较 . 主要区别在于C typeid 要求一个类至少有一个虚函数,而Java中的 getClass 可以在没有限制的任何类型的对象上调用 .

    返回类型(类)实际代表什么?

    它代表一个适合在类上进行反射的Class对象 - 在C中没有直接对应的东西 . 例如,您可以确定该类实现的所有接口,类的基类,列出所有方法,列出所有字段,按名称调用方法,等等 .

相关问题