获得对象的类

问: gerClass()方法是用来作什么的?html

答: 经过gerClass()方法能够获得一个和这个类有关的java.lang.Class对象。返回的Class对象是一个被static synchronized方法封装的表明这个类的对象;例如,static sychronized void foo(){}。这也是指向反射API。由于调用gerClass()的对象的类是在内存中的,保证了类型安全。java

问: 还有其余方法获得Class对象吗?安全

答: 获取Class对象的方法有两种。能够使用类字面常量,它的名字和类型相同,后缀位.class;例如,Account.class。另一种就是调用ClassfoeName()方法。类字面常量更加简洁,而且编译器强制类型安全;若是找不到指定的类编译就不会经过。经过forname()能够动态地经过指定包名载入任意类型地引用。可是,不能保证类型安全,可能会致使Runtime异常。spa

问: 实现equals()方法的时候,getClass()instanceof哪个更好?code

答: 使用getClass()仍是instanceof的话题一直都是Java社区争论的热点,Angelika Langer的Secrets of equals – Part 1文章能够帮助你作出选择。关于正确覆盖equals()方法(例如保证对称性)的讨论,Lang的这篇文章能够做为一个很好的参考手册。htm

相关文章
相关标签/搜索