如果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/

10-11 19:25