我的方法以类(Class)作为参数,我需要检查其中一个变量是否为该类的类型。
Volvo v1 = new Volvo();
Class aClass = v1.getClass();
check(aClass);
我需要在里面做类似的事情
v2 instanceof aClass ? "True" : "False");
但是这个无法编译。
我的方法以类(Class)作为参数,我需要检查其中一个变量是否为该类的类型。
Volvo v1 = new Volvo();
Class aClass = v1.getClass();
check(aClass);
我需要在里面做类似的事情
v2 instanceof aClass ? "True" : "False");
但是这个无法编译。
我认为你想要的是aClass.isInstance( v2 )
。 文档说它的作用与instanceOf
关键字相同。 我猜他们不能使用instanceOf
作为方法名,因为关键字不能用作方法名。
v2 = ???
Volvo v1 = new Volvo();
Class aClass = v1.getClass();
aClass.isInstance( v2 ) // "check(aClass)"
如果“Volvo”是一个常量,也可以使用一个类字面值。
v2 = ???
Volvo.class.isInstance( v2 );
Volvo v = new Volvo();
if (v instanceof Volvo) {
System.out.println("I'm boxy, but safe.");
}
aClass.isAssignableFrom(v2.getClass())
“aClass”是“v2”的超类。