Lambda表达式的演化过程

  1. // Main外部有一个接口,其中只有一个抽象方法(函数式接口)
  2. interface iface {
  3. void out();
  4. }
  5. // 1.在Main外部实现接口
  6. class Stance1 implements iface {
  7. @Override
  8. public void out() {
  9. System.out.println("Number One!");
  10. }
  11. }
  12. // 2.Main静态内部类
  13. static class Stance2 implements iface {
  14. @Override
  15. public void out() {
  16. System.out.println("Number Two!");
  17. }
  18. }
  19. // 3.main()中的局部内部类
  20. class Stance3 implements iface {
  21. @Override
  22. public void out() {
  23. System.out.println("Number Three!");
  24. }
  25. }
  26. Stance3 stance3 = new Stance3();
  27. stance3.out();
  28. // 4.匿名内部类,没有新的类名称
  29. iface stance4 = new iface() {
  30. @Override
  31. public void out() {
  32. System.out.println("Number Four!");
  33. }
  34. };
  35. stance4.out();
  36. // ※5.lambda表达式 (param) -> { body };
  37. // param为接口中那个唯一方法的参数, body为接口中唯一方法的方法体
  38. iface stance5 = () -> {
  39. System.out.println("Number Five! ");
  40. };
  41. stance5.out();
  42. }