instanceof 運算符是Java、php的一個二元操作符(運算符),和==、>、<是同一類東西。由於它是由字母組成的,所以也是Java的保留關鍵字。它的作用是判斷其左邊對象是否為其右邊類的實例,返回boolean類型的數據。可以用來判斷繼承中的子類的實例是否為父類的實現。相當於c#中的is操作符。java中的instanceof運算符是用來在運行時指出對象是否是特定類的一個實例。instanceof通過返回一個布爾值來指出。
用法:
result = object instanceof class
參數:
Result:布爾類型。
Object:必選項。任意對象表達式。
Class:必選項。任意已定義的對象類。
說明:
如果 object 是 class 的一個實例,則 instanceof 運算符返回 true。如果 object 不是指定類的一個實例,或者 object 是 null,則返回 false。
例子如下:
package com.instanceoftest; interface A{} class B implements A{ } class C extends B { } class instanceoftest { public static void main(String[] args){ A a=null; B b=null; boolean res; System.out.println("instanceoftest test case 1: ------------------"); res = a instanceof A; System.out.println("a instanceof A: " + res); res = b instanceof B; System.out.println("b instanceof B: " + res); System.out.println("\ninstanceoftest test case 2: ------------------"); a=new B(); b=new B(); res = a instanceof A; System.out.println("a instanceof A: " + res); res = a instanceof B; System.out.println("a instanceof B: " + res); res = b instanceof A; System.out.println("b instanceof A: " + res); res = b instanceof B; System.out.println("b instanceof B: " + res); System.out.println("\ninstanceoftest test case 3: ------------------"); B b2=(C)new C(); res = b2 instanceof A; System.out.println("b2 instanceof A: " + res); res = b2 instanceof B; System.out.println("b2 instanceof B: " + res); res = b2 instanceof C; System.out.println("b2 instanceof C: " + res); } } /* result: instanceoftest test case 1: ------------------ a instanceof A: false b instanceof B: false instanceoftest test case 2: ------------------ a instanceof A: true a instanceof B: true b instanceof A: true b instanceof B: true instanceoftest test case 3: ------------------ b2 instanceof A: true b2 instanceof B: true b2 instanceof C: true