如果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())
最佳答案
您可以使用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
。)关于java - 如何使用类的类型作为参数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8404302/