新的 Java SE 8 编程语言功能

  • Lambda Expressions 是一种新的语言功能,已在此版本中引入。它们使你能够将功能视为方法参数,或将代码视为数据。Lambda 表达式允许你更紧凑地表示单方法接口(称为功能接口)的实例。
  • 改进的类型推断 - Java 编译器利用目标类型来推断泛型方法调用的类型参数。表达式的目标类型是 Java 编译器所期望的数据类型,具体取决于表达式的显示位置。例如,你可以在 Java SE 7 中使用赋值语句的目标类型进行类型推断。但是,在 Java SE 8 中,你可以在更多上下文中使用目标类型进行类型推断。
  • 重复注释提供了对同一声明或类型使用多次应用相同注释类型的功能。
  • 类型注释提供了在使用类型的任何地方应用注释的功能,而不仅仅是在声明上。与可插拔类型系统一起使用时,此功能可以改进代码的类型检查。
  • 方法参数反射 - 你可以使用 java.lang.reflect.Executable.getParameters 方法获取任何方法或构造函数的形式参数的名称。 (Method 和 Constructor 类扩展了类 Executable,因此继承了 Executable.getParameters 的方法)但是,.class 文件默认不存储形式参数名。要将正式参数名称存储在特定的 .class 文件中,从而使 Reflection API 能够检索形式参数名称,请使用 javac 编译器的 -parameters 选项编译源文件。
  • Date-time-api - 在 java.time 中添加了新的时间 api。如果使用此选项,则无需指定时区。