下面是一个示例代码,展示了如何编写一个方法containsInstanceOf(Class extends SuperClassName>),用于检查一个类是否包含指定的父类或接口的实例:
import java.util.ArrayList;
import java.util.List;
class SuperClassName {
// 父类的定义
}
class SubClassName extends SuperClassName {
// 子类的定义
}
public class Main {
public static void main(String[] args) {
List list = new ArrayList<>();
list.add(new SuperClassName());
list.add(new SubClassName());
System.out.println(containsInstanceOf(list, SuperClassName.class)); // 输出 true
System.out.println(containsInstanceOf(list, SubClassName.class)); // 输出 true
System.out.println(containsInstanceOf(list, Integer.class)); // 输出 false
}
public static boolean containsInstanceOf(List extends SuperClassName> list, Class extends SuperClassName> clazz) {
for (SuperClassName obj : list) {
if (clazz.isInstance(obj)) {
return true;
}
}
return false;
}
}
在上述示例中,我们定义了一个父类SuperClassName和一个子类SubClassName。然后在Main类中,我们创建了一个List
接下来,我们调用containsInstanceOf方法来检查集合中是否包含指定类的实例。该方法接受一个List extends SuperClassName>类型的集合参数和一个Class extends SuperClassName>类型的类参数。在方法内部,我们使用isInstance方法来判断集合中的每个对象是否是指定类的实例。如果找到匹配的实例,则返回true;如果遍历完集合没有找到匹配的实例,则返回false。
在示例中,我们分别检查集合中是否包含SuperClassName类的实例、SubClassName类的实例以及Integer类的实例。最后得到的结果分别是true、true和false。