Java 8 —— 下面主要讲9个特性:
Lambda 表达式(也可以称为“闭包”):
(paramList) -> expression; 或者 (paramList) -> {statments;}
特征:
- 参数类型声明可选:编译器可识别参数值
- 只有一个表达式,那么表达式的值作为 Lambda 的返回值;用大括号 {} 括起来的,多个表达式,需要使用 return 关键字指明返回值
- Lambda 中不能声明和任何局部变量同名的,参数或者局部变量
演示用例:
public interface MathOperation { int operation(int a, int b); }
public class Tester { public static void main(String[] args) { MathOperation add = (int a, int b) -> a + b; //参数列表、表达式返回值相同即可;方法实现甚至可以没有:Lambda表达式相当于一个方法类,作为接口的实现 System.out.println(add.operation(1, 2)); } }
接口默认方法:
public interface vehicle { default void print(){ System.out.println("我是一辆车!"); } }
public interface Vehicle { default void print(){ System.out.println("Vehicle"); } } public interface FourWheeler { default void print() { System.out.println("FourWheeler"); } }
public class Car implements FourWheeler, Vehicle { @Override public void print() { System.out.println("Car"); } }
public class Car implements FourWheeler, Vehicle { @Override public void print() { FourWheeler.super.print(); //这里实际上就是普通的调用了接口提供的实现,重载本身没做任何事(当然实际情况下,除了选择接口的实现,往往还会做更多与类自身相关的) } }
静态默认方法(接口也可以像类一样,有静态方法):
public interface Vehicle { static void blowHorn() { System.out.println("blow horn"); //就像类的静态方法一样:Vechile.blowHorn(); } }
Java 7:
Java 6:
原文地址:https://www.cnblogs.com/quanxi/p/7512499.html
时间: 2024-10-29 10:33:20