java中如何判断两个对象是否为同一类型呢?
下文笔者讲述java代码判断两个对象是否为同一类型的方法分享,如下所示
判断对象是否为同一类型的实现思路
方式1:
使用instanceof运算符判断
方式2:
使用 getClass()方法
方式3:
使用反射机制
例
使用 instanceof 运算符
Java中instanceof 运算符
用于判断一个对象是否是某个类的实例或者是其子类的实例
可以通过instanceof运算符来判断两个对象是否属于同一类型
例
public class Example {
public static void main(String[] args) {
String str = "Hello World";
Object obj = new Object();
if (str instanceof String) {
System.out.println("str 是 String 类型");
}
if (obj instanceof String) {
System.out.println("obj 是 String 类型");
} else {
System.out.println("obj 不是 String 类型");
}
}
}
使用 getClass() 方法
在Java中
每个对象都有一个getClass()方法
返回表示对象所属类的 Class 对象
我们可以通过比较两个对象的 Class 对象来判断它们是否属于同一类型
public class Example {
public static void main(String[] args) {
String str = "Hello World";
Object obj = new Object();
if (str.getClass() == String.class) {
System.out.println("str 是 String 类型");
}
if (obj.getClass() == String.class) {
System.out.println("obj 是 String 类型");
} else {
System.out.println("obj 不是 String 类型");
}
}
}
使用反射机制
Java反射机制
可在运行时获取一个类的信息
包括类的属性、方法等
然后使用我们可以利用反射机制判断两个对象是否属于同一类型
import java.lang.reflect.Field;
public class Example {
public static void main(String[] args) {
String str = "Hello World";
Object obj = new Object();
if (str.getClass().equals(obj.getClass())) {
System.out.println("str 和 obj 是同一类型");
} else {
System.out.println("str 和 obj 不是同一类型");
}
}
}
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


