Robot.java 909 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package test;
  2. public abstract class Robot<T> {
  3. public Robot() {}
  4. public void performTask(T listener) {
  5. System.out.println("Robot.performTask() called!");
  6. }
  7. public void performTask(T listener, CleanupTask cleanupTask) {
  8. System.out.println("Robot.performTask() called!");
  9. cleanupTask.cleanup();
  10. }
  11. /**
  12. * MathOperation
  13. */
  14. @FunctionalInterface
  15. public interface MathOperation {
  16. public int operate(int a, int b);
  17. }
  18. @FunctionalInterface
  19. public interface GreetRobot {
  20. public void greet(Robot robot);
  21. }
  22. @FunctionalInterface
  23. public interface ManufactureRobot<T extends Robot> {
  24. public T manufacture(String robotType);
  25. }
  26. @FunctionalInterface
  27. public interface CleanupTask {
  28. public void cleanup();
  29. }
  30. @Override
  31. public String toString() {
  32. return "Robot";
  33. }
  34. }