查找数组中给定类的所有实例

uca*_*ion 2 java

我有一个程序,我需要在数组中找到类的所有实例.我想创建一个为我做这个的方法.例如,如果我有阵列

Object[] arr = {"mystring", new Boolean(false), new Integer(4), new Character('i')}
Run Code Online (Sandbox Code Playgroud)

我用String的参数调用了这个方法(实际上我不确定我的参数的类型应该是什么),它会返回一个数组{"mystring"}.

我尝试过类似的东西

public void printInstancesOf(Class c, Object[] array)
{
    for (Object obj : array)
    {
        if (obj instanceof c)
        {
             System.out.println(obj);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但这甚至都没有编译.有谁知道如何做到这一点?或者是不可能做到的?

Rei*_*ica 6

看起来你想要Class.isInstance(Object o):

确定指定的Object是否与此Class表示的对象分配兼容.此方法是Java语言instanceof运算符的动态等效项.如果指定的Object参数为非null,则该方法返回true,并且可以强制转换为此Class对象表示的引用类型,而不会引发ClassCastException.否则返回false.

if (c.isInstance(obj) {
    System.out.println(obj);
}
Run Code Online (Sandbox Code Playgroud)