新的 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。如果使用此選項,則無需指定時區。