Java Not InstanceOf

InstanceOf 关键字检查引用变量是否包含给定的对象引用类型。它返回布尔类型,所以我们也可以否定它们。

本教程演示如何在 Java 中否定 InstanceOf 或使用 Not InstanceOf

在 Java 中使用 Not InstanceOf

instanceof 返回一个布尔值,因此否定它将返回 false 值。取反 InstanceOf 与 Java 中的其他取反类似。

例如:

if(!(str instanceof String)) { /* ... */ }

或者:

if (str instanceof String == false) { /* ... */ }

让我们尝试一个完整的 Java 示例来展示 Not InstanceOf 在 Java 中的用法。

package delftstack;
class Delftstack_One {}
class Delftstack_Two extends Delftstack_One {}
public class Negate_InstanceOf {
    public static void main(String[] args) {
        Delftstack_Two Demo = new Delftstack_Two();
        // A simple not instanceof using !
        if (!(Demo instanceof Delftstack_Two)) {
            System.out.println("Demo is Not the instance of Delftstack_Two");
        }
        else {
            System.out.println("Demo is the instance of Delftstack_Two");
        }
        // not instanceof using !
        if (!(Demo instanceof Delftstack_One)) {
            System.out.println("Demo is Not the instance of Delftstack_One");
        }
        else {
            System.out.println("Demo is the instance of Delftstack_One");
        }
        // instanceof returns true for all ancestors, and the object is the ancestor of all classes in Java
        // not instance using == false
        if ((Demo instanceof Object) == false) {
            System.out.println("Demo is Not the instance of Object");
        }
        else {
            System.out.println("Demo is the instance of Object");
        }
        System.out.println(Demo instanceof Delftstack_One);
        System.out.println(Demo instanceof Delftstack_Two);
        System.out.println(Demo instanceof Object);
    }
}

上面的代码创建了两个父子类来展示 Not InstanceOf 的用法。我们使用了上述两种方法。

见输出:

Demo is the instance of Delftstack_Two
Demo is Not the instance of Delftstack_One
Demo is the instance of Object
false
true
true