fork 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 void main (String[] args) throws java.lang.Exception
  11. {
  12. // your code goes here
  13. }
  14. }
  15.  
  16. class MyObject {
  17. }
  18.  
  19. class BigObject extends MyObject {}
  20. class SmallObject extends MyObject {}
  21.  
  22. interface MyObjectHandler<V extends MyObject>{
  23. List<V> handle(List<V> objects);
  24. }
  25.  
  26. interface BigObjectHandler extends MyObjectHandler<BigObject>{}
  27. interface SmallObjectHandler extends MyObjectHandler<SmallObject>{}
  28.  
  29. abstract class HandlerChain<V extends MyObject> {
  30.  
  31. private List<MyObjectHandler<V>> handlers;
  32.  
  33. public List<V> doChain(List<V> objects) {
  34. for (MyObjectHandler<V> handler : handlers) {
  35. objects = handler.handle(objects);
  36. }
  37. return objects;
  38. }
  39.  
  40. }
Success #stdin #stdout 0.05s 4386816KB
stdin
Standard input is empty
stdout
Standard output is empty