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. static <T extends Calculator> void computeWithClass(Class<T> calcClass) throws Exception {
  11. Calculator calc = calcClass.newInstance();
  12. calc.setA(123);
  13. calc.setB(321);
  14. System.out.println(calc.compute());
  15. }
  16. public static void main(String[] args) throws Exception {
  17. computeWithClass(Adder.class);
  18. computeWithClass(Multiplier.class);
  19. }
  20. }
  21.  
  22.  
  23. interface Calculator {
  24. void setA(int a);
  25. void setB(int b);
  26. int compute();
  27. }
  28. class Adder implements Calculator {
  29. private int a,b;
  30. public void setA(int a) {this.a=a;}
  31. public void setB(int b) {this.b=b;}
  32. public int compute() {return a+b;}
  33. }
  34. class Multiplier implements Calculator {
  35. private int a,b;
  36. public void setA(int a) {this.a=a;}
  37. public void setB(int b) {this.b=b;}
  38. public int compute() {return a*b;}
  39. }
Success #stdin #stdout 0.08s 380224KB
stdin
Standard input is empty
stdout
444
39483