Java instanceof 运算符检查对象是否是特定类型(类、子类或接口)的实例。如果对象是特定类型的实例,则返回 true,否则返回 false。
语法
objectName instanceof objectType
- 1
返回值
如果object 是特定类型(类、子类或接口)的实例,否则为 false。
示例:
下面的示例显示了 instanceof 的用法
public class MyClass {
public static void main(String[] args) {
String str = "Hello World";
MyClass obj = new MyClass();
//使用instanceof运算符
boolean x = str instanceof String;
System.out.println("str instanceof String: " + x);
//使用instanceof运算符
boolean y = obj instanceof MyClass;
System.out.println("obj instanceof MyClass: " + y);
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
上述代码的输出将是:
str instanceof String: true
obj instanceof MyClass: true
- 1
- 2
继承期间的Java instanceof
instanceof运算符可以是用于检查子类类型的对象是否也是父类的实例。考虑下面的示例:
class Shape{}
class Circle extends Shape {}
public class MyClass {
public static void main(String[] args) {
Shape sobj = new Shape();
Circle cobj = new Circle();
//使用instanceof运算符
if(sobj instanceof Shape)
System.out.println("sobj is an instance of Shape.");
else
System.out.println("sobj is NOT an instance of Shape.");
if(sobj instanceof Circle)
System.out.println("sobj is an instance of Circle.");
else
System.out.println("sobj is NOT an instance of Circle.");
if(cobj instanceof Shape)
System.out.println("cobj is an instance of Shape.");
else
System.out.println("cobj is NOT an instance of Shape.");
if(cobj instanceof Circle)
System.out.println("cobj is an instance of Circle.");
else
System.out.println("cobj is NOT an instance of Circle.");
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
上述代码的输出将是:
sobj is an instance of Shape.
sobj is NOT an instance of Circle.
cobj is an instance of Shape.
cobj is an instance of Circle.
- 1
- 2
- 3
- 4
接口中的 Java instanceof
The instanceof运算符可用于检查类类型的对象是否也是该类实现的接口的实例。考虑下面的示例:
interface Shape{}
class Circle implements Shape {}
public class MyClass {
public static void main(String[] args) {
Circle cobj = new Circle();
//使用instanceof运算符
if(cobj instanceof Shape)
System.out.println("cobj is an instance of Shape.");
else
System.out.println("cobj is NOT an instance of Shape.");
if(cobj instanceof Circle)
System.out.println("cobj is an instance of Circle.");
else
System.out.println("cobj is NOT an instance of Circle.");
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
上述代码的输出将是:
cobj is an instance of Shape.
cobj is an instance of Circle.
- 1
- 2