java - 如何检查我的对象是否属于给定类的类型?

Bic*_*ick 22 java class

我的方法将Class作为参数,我必须检查我的变量是否为类型类.

Volvo v1 = new Volvo();
Class aClass = v1.getClass();
check(aClass);
Run Code Online (Sandbox Code Playgroud)

在里面,我需要做类似的事情

   v2 instanceof aClass  ? "True" : "False");
Run Code Online (Sandbox Code Playgroud)

但这并没有编译.

mar*_*ace 31

我想你想要的aClass.isInstance( v2 ).该文件说它的工作原理相同instanceOf的关键字.我猜他们不能instanceOf用作方法名,因为关键字不能用作方法名.

v2 = ???
Volvo v1 = new Volvo();
Class aClass = v1.getClass();
aClass.isInstance( v2 )       // "check(aClass)"
Run Code Online (Sandbox Code Playgroud)

或者只是使用一个类文字,如果"Volvo"是常量.

v2 = ???
Volvo.class.isInstance( v2 );
Run Code Online (Sandbox Code Playgroud)


小智 16

    Volvo v = new Volvo();
    if (v instanceof Volvo) {
        System.out.println("I'm boxy, but safe.");
    }
Run Code Online (Sandbox Code Playgroud)

  • 这可能有助于解释它的作用/为什么它是一个有效的答案。 (2认同)