日期:2014-05-20  浏览次数:20871 次

如何判断两个对象是同一类型
rt

------解决方案--------------------
a.getClass()==b.getClass();
------解决方案--------------------
a!=null&&b!=nuul&&a.getClass()==b.getClass();

------解决方案--------------------
Class类里面有个getClass()方法

public Class[] getClasses()返回一个包含某些 Class 对象的数组,这些对象表示属于此 Class 对象所表示的类的成员的所有公共类和接口,包括从超类和公共类继承的以及通过该类声明的公共类和接口成员。如果此 Class 对象没有公共成员类或接口,此方法返回一个长度为 0 的数组。如果此 Class 对象表示一个基本类型、一个数组类或 void,此方法也返回一个长度为 0 的数组。

返回:
表示该类公共成员的 Class 对象的数组

------解决方案--------------------
Class 类的实例表示正在运行的 Java 应用程序中的类和接口。枚举是一种类,注释是一种接口。每个数组属于被映射为 Class 对象的一个类,所有具有相同元素类型和维数的数组都共享该 Class 对象。基本的 Java 类型(boolean、byte、char、short、int、long、float 和 double)和关键字 void 也表示为 Class 对象。

Class 没有公共构造方法。Class 对象是在加载类时由 Java 虚拟机以及通过调用类加载器中的 defineClass 方法自动构造的。

以下示例使用 Class 对象来显示对象的类名:


void printClassName(Object obj) {
System.out.println( "The class of " + obj +
" is " + obj.getClass().getName());
}
还可以使用一个类字面值(JLS )来获得命名类型(或 void)的 Class 对象。例如:


System.out.println( "The name of class Foo is: "+Foo.class.getName());