我是一名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 回答
C typeid operator将提供更好的比较 . 主要区别在于C
typeid
要求一个类至少有一个虚函数,而Java中的getClass
可以在没有限制的任何类型的对象上调用 .它代表一个适合在类上进行反射的Class对象 - 在C中没有直接对应的东西 . 例如,您可以确定该类实现的所有接口,类的基类,列出所有方法,列出所有字段,按名称调用方法,等等 .