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

2022-09-02 00:23:15

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

Volvo v1 = new Volvo();
Class aClass = v1.getClass();
check(aClass);

里面我需要做这样的事情

   v2 instanceof aClass  ? "True" : "False");

但这不会编译.


答案 1

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

v2 = ???
Volvo v1 = new Volvo();
Class aClass = v1.getClass();
aClass.isInstance( v2 )       // "check(aClass)"

或者,如果“Volvo”是一个常量,则可能只是使用类文字。

v2 = ???
Volvo.class.isInstance( v2 );

答案 2
    Volvo v = new Volvo();
    if (v instanceof Volvo) {
        System.out.println("I'm boxy, but safe.");
    }