在Java中,判断对象类型有多种方法,以下是一些常用的方法:
instanceof关键字 `instanceof`是Java中的一个关键字,用于判断一个对象是否是指定类型或其子类型的实例。它的使用格式为:
```java
object instanceof Type
```
其中,`object`是待判断的对象,`Type`是要判断的类型。`instanceof`的返回值是一个布尔值,如果对象是指定类型或其子类型的实例,则返回`true`,否则返回`false`。
示例代码:
```java
Object obj = new String("Hello");
if (obj instanceof String) {
System.out.println("obj是String类型");
} else {
System.out.println("obj不是String类型");
}
```
getClass()方法
`getClass()`方法用于获取一个对象的运行时类。它的使用格式为:
```java
object.getClass()
```
示例代码:
```java
Object obj = new String("Hello");
System.out.println(obj.getClass().getName()); // 输出 "java.lang.String"
```
isInstance()方法
`isInstance()`是`Class`类的一个方法,用于判断指定的对象是否是`Class`类的实例。它的使用格式为:
```java
class.isInstance(object)
```
示例代码:
```java
Object obj = new String("Hello");
boolean isInstance = String.class.isInstance(obj);
System.out.println(isInstance); // 输出 true
```
isAssignableFrom()方法
`isAssignableFrom()`是`Class`类的一个方法,用于判断一个类是否是另一个类的子类或接口的实现类。它的使用格式为:
```java
class1.isAssignableFrom(class2)
```
示例代码:
```java
String str = "Hello";
boolean isAssignableFrom = String.class.isAssignableFrom(str.getClass());
System.out.println(isAssignableFrom); // 输出 true
```
总结
instanceof: 用于判断对象是否是特定类型或其子类型的实例。 getClass()
isInstance():用于判断对象是否是某个类的实例。
isAssignableFrom():用于判断一个类是否是另一个类的子类或接口的实现类。
这些方法在类型判断时非常有用,可以根据具体需求选择合适的方法。