/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
public static class MainClass {
}
static class A extends MainClass {
}
static class B extends MainClass {
}
static class C extends MainClass {
}
public static <T extends MainClass> List<T> getClasses(List<MainClass> classes, Class<T> classToCollect) {
List<T> subclasses = new ArrayList<T>();
for (MainClass clazz : classes) {
if (classToCollect.isInstance(clazz)) {
subclasses.add((T)clazz);
}
}
return subclasses;
}
{
List<MainClass> all = new ArrayList<MainClass>();
all.add(new A());
all.add(new B());
all.add(new C());
List<B> res = getClasses(all, B.class);
System.
out.
println(res.
size()); }
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgY2xhc3MgTWFpbkNsYXNzIHsKCn0KCnN0YXRpYyBjbGFzcyBBIGV4dGVuZHMgTWFpbkNsYXNzIHsKCn0KCnN0YXRpYyBjbGFzcyBCIGV4dGVuZHMgTWFpbkNsYXNzIHsKCn0KCnN0YXRpYyBjbGFzcyBDIGV4dGVuZHMgTWFpbkNsYXNzIHsKCn0KCnB1YmxpYyBzdGF0aWMgPFQgZXh0ZW5kcyBNYWluQ2xhc3M+IExpc3Q8VD4gZ2V0Q2xhc3NlcyhMaXN0PE1haW5DbGFzcz4gY2xhc3NlcywgQ2xhc3M8VD4gY2xhc3NUb0NvbGxlY3QpIHsKICAgIExpc3Q8VD4gc3ViY2xhc3NlcyA9IG5ldyBBcnJheUxpc3Q8VD4oKTsKCiAgICBmb3IgKE1haW5DbGFzcyBjbGF6eiA6IGNsYXNzZXMpIHsKaWYgKGNsYXNzVG9Db2xsZWN0LmlzSW5zdGFuY2UoY2xhenopKSB7CiAgICBzdWJjbGFzc2VzLmFkZCgoVCljbGF6eik7Cn0KICAgIH0KCiAgICByZXR1cm4gc3ViY2xhc3NlczsKfQoJCglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24KCXsKCQlMaXN0PE1haW5DbGFzcz4gYWxsID0gbmV3IEFycmF5TGlzdDxNYWluQ2xhc3M+KCk7CgkJYWxsLmFkZChuZXcgQSgpKTsKCQlhbGwuYWRkKG5ldyBCKCkpOwoJCWFsbC5hZGQobmV3IEMoKSk7CgkJTGlzdDxCPiByZXMgPSBnZXRDbGFzc2VzKGFsbCwgIEIuY2xhc3MpOwoJCVN5c3RlbS5vdXQucHJpbnRsbihyZXMuc2l6ZSgpKTsKCX0KfQ==