java 比较两个类class相同
时间: 2023-10-02 08:04:25 浏览: 66
在Java中,可以使用`equals()`方法来比较两个类对象是否相同,但是这种比较只能判断两个对象的引用是否相等,而不能判断两个类的class是否相同。
如果要比较两个类的class是否相同,可以使用`Class`类提供的静态方法`equals()`或`isAssignableFrom()`。
`equals()`方法比较两个`Class`对象是否代表同一个类,示例代码如下:
```java
Class<?> class1 = String.class;
Class<?> class2 = String.class;
if (class1.equals(class2)) {
System.out.println("class1 and class2 are the same class");
} else {
System.out.println("class1 and class2 are different classes");
}
```
`isAssignableFrom()`方法判断一个`Class`对象是否是另一个`Class`对象的父类或者接口,示例代码如下:
```java
Class<?> class1 = String.class;
Class<?> class2 = Object.class;
if (class2.isAssignableFrom(class1)) {
System.out.println("class2 is a superclass/interface of class1");
} else {
System.out.println("class2 is not a superclass/interface of class1");
}
```
需要注意的是,`equals()`方法只能比较两个`Class`对象是否代表同一个类,而不能判断两个类是否是同一个类的子类或者父类。因此,在比较类的继承关系时,应该使用`isAssignableFrom()`方法。
阅读全文