我如何编写并调用方法boolean doInstanceof(...)
,该方法采用对象o
和类型t
,如果o
是t
的实例,则返回true },否则返回false。
类似的东西:
boolean doInstanceof(Object o, type t)
{
return o instanceof t;
}
//called like
boolean isInstance = doInstanceof(new MyClass(), MyClass.type())
答案 0 :(得分:5)
您可以使用Class
及其isInstance
方法:
boolean doInstanceOf(Object o, Class<?> clazz)
{
return clazz.isInstance(o);
}
boolean isInstance = doInstanceOf(new MyClass(), MyClass.class)
请注意,这只是替换另一个方法调用 - 您也可以直接调用Class.isInstance
:
boolean isInstance = MyClass.class.isInstance(new MyClass());
(我假设实际上你在编译时不知道这个类,否则你当然应该使用instanceof
。)