我有一个程序,我需要在数组中找到类的所有实例.我想创建一个为我做这个的方法.例如,如果我有阵列
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)
但这甚至都没有编译.有谁知道如何做到这一点?或者是不可能做到的?
看起来你想要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)