instanceOf_Keyword

instanceof Java Keyword with Examples

The Java instanceof keyword is used to test whether the object is an instance of the specified type (class or subclass or interface).

  • Syntex:
  • obj instanceOf Object
  • The left side is the instance and right side is the Java class name. Java instanceof operator returns a boolean result.
  • The instanceof in Java is also known as type comparison operator because it compares the instance with type. It returns either true or false. If we apply the instanceof operator with any variable that has a null value, it returns false.
  • instanceof Java Keyword Example 1
package com.javaguides.corejava.keywords.instanceofkeyword;

/**
 * Class demonstrates the usage of instanceof keyword
 * @author Ramesh Fadatare
 *
 */
public class InstanceOfKeyword {

    public static void main(String[] args) {
        Pizza pizza = new VegPizza();
        Pizza nonPizza = new NonVegPizza();
        test(pizza);
        test(nonPizza);
    }

    private static void test(Pizza pizza) {
        if (pizza instanceof VegPizza) {
            pizza.bake();
        }

        if (pizza instanceof NonVegPizza) {
            pizza.bake();
        }
    }
}

interface Pizza {
    public void bake();
}

class VegPizza implements Pizza {

    @Override
    public void bake() {
        System.out.println("Bake Veg Pizza");
    }
}

class NonVegPizza implements Pizza {

    @Override
    public void bake() {
        System.out.println("Bake Non-Veg Pizza");
    }
}

Output:

Bake Veg Pizza
Bake Non-Veg Pizza

Note that usage of instanceof keyword:

    private static void test(Pizza pizza) {
        if (pizza instanceof VegPizza) {
            pizza.bake();
        }

        if (pizza instanceof NonVegPizza) {
            pizza.bake();
        }
    }
    

instanceof Keyword Example 2

Let’s see the real use of instanceof keyword by the example given below.

package com.javaguides.corejava.keywords.instanceofkeyword;

public class InstanceOfKeyword2 {
    public static void main(String[] args) {
        Operations addOperation = new AddOperation();
        Operations subOperation = new SubOperation();
        Operations mulOperation = new MultiplyOperation();
        Operations divOperation = new AddOperation();

        Calculate calculate = new Calculate();

        calculate.process(addOperation);
        calculate.process(subOperation);
        calculate.process(mulOperation);
        calculate.process(divOperation);

        System.out.println(addOperation instanceof Operations); // true
        System.out.println(subOperation instanceof Operations); // true
        System.out.println(mulOperation instanceof Operations); // true
        System.out.println(divOperation instanceof Operations); // true

        System.out.println(addOperation instanceof Object); // true

        System.out.println(new AddOperation() instanceof Operations); // true
    }
}

interface Operations {
    public int doOperation(int num1, int num2);
}

class AddOperation implements Operations {

    @Override
    public int doOperation(int num1, int num2) {
        return (num1 + num2);
    }
}

class SubOperation implements Operations {

    @Override
    public int doOperation(int num1, int num2) {
        return (num1 - num2);
    }
}

class MultiplyOperation implements Operations {

    @Override
    public int doOperation(int num1, int num2) {
        return (num1 * num2);
    }
}

class DivisionOperation implements Operations {

    @Override
    public int doOperation(int num1, int num2) {
        return (num1 / num2);
    }
}

class Calculate {

    public void process(Operations operations) {
        if (operations instanceof AddOperation) {
            operations.doOperation(1, 2);
        }

        if (operations instanceof SubOperation) {
            operations.doOperation(2, 1);
        }

        if (operations instanceof MultiplyOperation) {
            operations.doOperation(2, 2);
        }

        if (operations instanceof DivisionOperation) {
            operations.doOperation(2, 1);
        }
    }
}

Java instanceof with an Array

Java arrays are also Object, but instanceof operator works differently when it’s used with an array.
For example:

// Java instanceof with array

        int[] intArray = {
            1,
            2,
            3,
            4,
            5
        };
        System.out.println(intArray instanceof Object);

Output:

true

But if we try something like below:

        String[] strArray = {
            "ABC",
            "XYZ"
        };
        System.out.println(strArray instanceof String);

Then we get a compile-time error as Incompatible conditional operand types String[] and String. However, below the use of instanceof operator works fine.

        String[] strArray = {
            "ABC",
            "XYZ"
        };
        System.out.println(strArray instanceof String[]);

Java instanceof keyword with Collection example

 // Java instanceof with array
 
 List < String > list = Arrays.asList("ABC", "XYZ");
 System.out.println(list instanceof Collection);

Output:

true
全部评论

相关推荐

哈哈哈哈哈哈哈哈哈哈这个世界太美好了
凉风落木楚山秋:毕业出路老师不管,你盖个章他好交差就完事了,等你盖完毕业了就不关他事情了
点赞 评论 收藏
分享
点赞 评论 收藏
分享
程序员小白条:太晚了,看别人找到实习了才投的话,自己本身就没啥准备,计划太晚咯,只能吞苦果子
点赞 评论 收藏
分享
叶扰云倾:进度更新,现在阿里云面完3面了,感觉3面答得还行,基本都答上了,自己熟悉的地方也说的比较细致,但感觉面试官有点心不在焉不知道是不是不想要我了,求阿里收留,我直接秒到岗当阿里孝子,学校那边的房子都退租了,下学期都不回学校,全职猛猛实习半年。这种条件还不诱人吗难道 然后现在约到了字节的一面和淘天的复活赛,外加猿辅导。华为笔试完没动静。 美团那边之前投了个base广州的,把我流程卡麻了,应该是不怎么招人,我直接简历挂了,现在进了一个正常的后端流程,还在筛选,不知道还有没有hc。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务