我有一个程序需要在数组中查找类的所有实例。我想创建一个为我执行此操作的方法。例如,如果我有数组

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


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

我已经尝试过类似的事情

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


但这还没有编译。有谁知道如何做到这一点?还是不可能做?

最佳答案

看起来像您要Class.isInstance(Object o)


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


if (c.isInstance(obj) {
    System.out.println(obj);
}

关于java - 在数组中查找给定类的所有实例,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11112381/

10-12 03:47
查看更多