几种Java判断类型的方式_极悦注册
专注Java教育14年 全国咨询/投诉热线:444-1124-454
极悦LOGO图
始于2009,口口相传的Java黄埔军校
首页 学习攻略 Java学习 几种Java判断类型的方式

几种Java判断类型的方式

更新时间:2022-04-12 10:29:00 来源:极悦 浏览14998次

在Java这种强类型语言中,经常会遇到类型转换、类型判断。今天极悦小编就来盘点一下Java中判断类型的方式。

1.实例化

instanceof是一个Java运算符,用来判断一个对象是否是一个类的实例。用法 :

boolean isInstance = obj instanceof Class

其中 obj 对于对象实例,Class 对于类名或者接口名,当 obj 通过 Class Example,或者其子类实例,或者其接口的实现类实例,全部返回 true,否则返回false。

需要注意的是,obj 必须是引用类型,不能是基本类型,下面的公式不能编译:

int integer = 0;
//  Error will be reported at compile time 
boolean isInstance = integer instanceof Number

另外,编译器会检查instanceof表达式 obj 中是否可以转换为右边的Class类型,如果不能转换直接报错,如果不能确定类型,也会编译。

2. 类.isInstance

// Class.isInstance Equivalent to instanceof The operator
boolean ret = entity instanceof UserInfo;
boolean isInstance = UserInfo.class.isInstance(entity);

如上图Class.isInstance 等价于instanceof 运算符。如果参数不是null, 并且不触发也可以,ClassCastException如果成功转换为左边的引用类型,就会返回true。

3. Class.isAssignableFrom

该方法的调用者和参数是Class对象,调用者是父类,参数是自身或其子类。

boolean assignableFrom = List.class.isAssignableFrom(ArrayList.class);

常用于判断父子关系,Mybatis 插件教程中使用这个方法来判断一个类是否是接口的实现类。

4. 类.isPrimitive

该方法主要用于判断Class是否为原始类型(boolean、char、byte、short、int、long、float、double)。

//true
boolean primitive = int.class.isPrimitive();

请注意,基类型的包装器类型。如果使用此方法确定结果,则返回 false。

5.总结

这类判断除前两种外都很常见,后两种机会有限。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>