এই অপারেটর শুধু অবজেক্ট রেফারেন্স ভেরিয়েবলের জন্য ব্যবহৃত হয়। অপারেটরটি চেক করে যে অবজেক্টটি একটি নির্দিষ্ট টাইপের (ক্লাস টাইপ বা ইন্টারফেস টাইপ) কিনা। instanceof অপারেটর নিচের মত লিখা হয়:
(Object reference variable) instanceof (class/interface type)
যদি লেফট সাইডের ভেরিয়েবল দ্বারা রেফারেন্সড অবজেক্ট রাইট সাইডের ক্লাস/ইন্টারফেস টাইপের জন্য IS-A চেক পাস করে, তবে ফলাফল হবে true। একটি উদাহরণ:
উদাহরণ
public class Test {
public static void main(String args[]) {
String name = "James";
// নিচে true রিটার্ন করবে কারণ name String টাইপের
boolean result = name instanceof String;
System.out.println(result);
}
}
আউটপুট
true
এই অপারেটর এখনও true রিটার্ন করবে যদি তুলনা করা অবজেক্ট রাইট সাইডের টাইপের সাথে অ্যাসাইনমেন্ট কম্প্যাটিবল হয়। আর একটি উদাহরণ:
উদাহরণ
class Vehicle {}
public class Car extends Vehicle {
public static void main(String args[]) {
Vehicle a = new Car();
boolean result = a instanceof Car;
System.out.println(result);
}
}
আউটপুট
true