我有一个程序需要在数组中查找类的所有实例。我想创建一个为我执行此操作的方法。例如,如果我有数组
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/