Java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例。instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例。
用法:
result = object instanceof class
参数:
Result:布尔类型。
Object:必选项。任意对象表达式。
Class:必选项。任意已定义的对象类。
说明:
如果 object 是 class 的一个实例,则 instanceof 运算符返回 true。如果 object 不是指定类的一个实例,或者 object 是 null,则返回 false。
public class EncodeUtils {
public static void main(String[] args){
String str="123";
Long a=1L;
int b =a instanceof Long?1:2;
System.out.println(b);
if(str instanceof String){
System.out.println(str);
}
if(a instanceof Long){
System.out.println(a);
}
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
结果如下:
======================================================
Java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例。instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例。
instanceof关键字的作用是判断一个对象是否是一个具体类的实例,我们在重写equals方法中要先判断是否是同一对象,之后再判断一个对象是否是另一个的实例,如果是判断各个属性值以判断是否是同一对象,不是一定不是同一对象。
下面是String中equals的方法源码:
也是先判断是否为同一对象,利用instanceof关键字判断是否是String的实例(任何字符串都是String的实例),如不是对字符串中每个字符进行比较
下面是instanceof的简单举例:
-
package dmeo_1;
-
public class Student extends Person{
-
public static void main(String[] args) {
-
if ("a" instanceof String) {
-
//所有的字符串都是String的实例
-
System.out.println("字符串是Stringde实例");
-
}
-
//只是声明了对象并没有创建,所以instanceof判断是false
-
Student s1 = null;
-
Student s2 = null;
-
if (s1 instanceof Student) {
-
System.out.println("s1是Student的实例");
-
}
-
if (s2 instanceof Student) {
-
System.out.println("s2是Student的实例");
-
}
-
//创建了对象实例,判断为true
-
s1 = new Student();
-
s2 = new Student();
-
if (s1 instanceof Student) {
-
System.out.println("s1是Student的实例");
-
}
-
if (s2 instanceof Student) {
-
System.out.println("s2是Student的实例");
-
}
-
/*任何类的父类都是Object类,可以这样理解,我们在创建子类对象的时候,
-
调用子类的构造方法时会默认调用父类无参的构造方法,其实是会创建父类的对象的,,有继承关系的可以判断出为true*/
-
if (s1 instanceof Object) {
-
System.out.println("s1是Object的实例");
-
}
-
Object obj = new Student();
-
if (obj instanceof Student) {
-
System.out.println("obj是Student的实例");
-
}
-
Student s3 = new Student();
-
if (s3 instanceof Person) {
-
System.out.println("s3是Student的父类Person的实例");
-
}
-
}
-
}
-
class Person{
-
}
输出:
字符串是Stringde实例
s1是Student的实例
s2是Student的实例
s1是Object的实例
obj是Student的实例
s3是Student的父类Person的实例