fork(2) download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6.  
  7. /* Name of the class has to be "Main" only if the class is public. */
  8. class Ideone
  9. {
  10. public static class MainClass {
  11.  
  12. }
  13.  
  14. static class A extends MainClass {
  15.  
  16. }
  17.  
  18. static class B extends MainClass {
  19.  
  20. }
  21.  
  22. static class C extends MainClass {
  23.  
  24. }
  25.  
  26. public static <T extends MainClass> List<T> getClasses(List<MainClass> classes, Class<T> classToCollect) {
  27. List<T> subclasses = new ArrayList<T>();
  28.  
  29. for (MainClass clazz : classes) {
  30. if (classToCollect.isInstance(clazz)) {
  31. subclasses.add((T)clazz);
  32. }
  33. }
  34.  
  35. return subclasses;
  36. }
  37.  
  38. public static void main (String[] args) throws java.lang.Exception
  39. {
  40. List<MainClass> all = new ArrayList<MainClass>();
  41. all.add(new A());
  42. all.add(new B());
  43. all.add(new C());
  44. List<B> res = getClasses(all, B.class);
  45. System.out.println(res.size());
  46. }
  47. }
Success #stdin #stdout 0.07s 380160KB
stdin
Standard input is empty
stdout
1