找到 4330 篇文章 關於 Java 8

如何在 Java 中編寫多行 lambda 表示式?

raja
更新於 2020-07-10 14:08:21

10K+ 瀏覽量

Lambda 表示式是一個匿名方法,用於提供函式式介面定義的方法的實現。在 Java 8 中,lambda 表示式的主體也可以是複雜的表示式或語句,這意味著一個 lambda 表示式可以包含多行。在這種情況下,分號是必要的。如果 lambda 表示式返回結果,則還需要 return 關鍵字。語法([逗號分隔的引數列表]) -> {多行語句}示例介面 Employee {    String displayName(String s); } public class MultilineLambdaTest {    public static void main(String[] s) {       ... 閱讀更多

Java 中有哪些內建函式式介面?

raja
更新於 2020-07-10 14:00:23

7K+ 瀏覽量

java.util.function 包定義了一些內建函式式介面,這些介面可以在建立 lambda 表示式或方法引用時使用。內建函式式介面:1) Function 介面Function 介面只有一個方法 apply()。它可以接受任何資料型別的物件並返回任何資料型別的結果。示例import java.util.*; import java.util.function.*; public class FunctionTest {    public static void main(String args[]) {       String[] countries = {"India", "Australia", "England", "South Africa", "Srilanka", "Newzealand", "West Indies", "Scotland"};       Function converter = (all) -> {  // lambda 表示式          String names = "";       ... 閱讀更多

Java 中的建構函式引用是什麼?

raja
更新於 2020-07-10 13:55:56

239 瀏覽量

建構函式引用類似於方法引用,只是方法名稱為“new”。它可以透過使用“類名”和關鍵字“new”以及以下語法來建立。語法 :: new在下面的示例中,我們使用 java.util.function.Function。它是一個函式式介面,其唯一的抽象方法是 apply()。Function 介面表示一個操作,該操作接受單個引數 T 並返回結果 R。示例import java.util.function.*; @FunctionalInterface interface MyFunctionalInterface {    Employee getEmployee(String name); } class Employee {    private String name;    public Employee(String name) {       this.name = name;    }    public String ... 閱讀更多

如何在 Java 中使用 lambda 表示式實現監聽器?

raja
更新於 2020-07-10 13:50:30

1K+ 瀏覽量

當我們為 java 監聽器使用 lambda 表示式時,我們不必顯式實現 ActionListener 介面。相反,我們可以使用以下語法。語法button.addActionListener(e -> { // 一些語句 });ActionListener 介面只定義了一個方法 actionPerformed()。它是一個函式式介面,這意味著可以使用 lambda 表示式替換程式碼。示例import java.awt.*; import java.awt.event.*; import javax.swing.*; public class LambdaListenerTest extends JFrame {    public static void main(String args[]) {       new LambdaListenerTest();    }    private JButton button;    public ClickMeLambdaTest() {       setTitle("Lambda 表示式測試");       button = ... 閱讀更多

如何在 Java 中將 lambda 表示式傳遞給方法?

raja
更新於 2020-07-10 12:50:58

3K+ 瀏覽量

將 lambda 表示式傳遞給具有函式式介面型別引數的方法。如果需要將 lambda 表示式作為引數傳遞,則接收 lambda 表示式引數的引數型別必須為函式式介面型別。在下面的示例中,lambda 表示式可以傳遞給一個方法,該方法的引數型別為“TestInterface”。示例介面 TestInterface {    boolean test(int a); } class Test {    // lambda 表示式可以作為 check() 方法的第一個引數傳遞    static boolean check(TestInterface ti, int b) {       return ti.test(b);    } } public class ... 閱讀更多

在 Java 中,lambda 表示式可以訪問哪些型別的變數?

raja
更新於 2019-12-11 12:30:52

886 瀏覽量

lambda 表示式由兩部分組成,一部分是引數,另一部分是表示式,這兩部分由箭頭(->)符號分隔。lambda 表示式可以訪問其封閉作用域的變數。lambda 表示式可以訪問其封閉類的例項變數和靜態變數,還可以訪問區域性變數,這些區域性變數必須是有效的 final 或 final。語法(引數列表) -> 表示式示例介面 TestInterface {    void print(); } public class LambdaExpressionTest {    int a; // 例項變數    static int b; // 靜態變數    LambdaExpressionTest(int x) {    // 建構函式初始化例項變數       this.a = ... 閱讀更多

Java 中 Lambda 表示式和閉包的區別?

raja
更新於 2020-07-10 12:46:52

2K+ 瀏覽量

Java 支援 lambda 表示式,但不支援閉包。lambda 表示式是一個匿名函式,可以定義為引數。閉包就像程式碼片段或程式碼塊,可以在不用於方法或類的情況下使用。這意味著閉包可以訪問在其引數列表中未定義的變數,並將其分配給變數。語法([逗號分隔的引數列表]) -> {主體}在下面的示例中,create() 方法有一個區域性變數“value”,其生命週期很短,當我們退出 create() 方法時消失。此方法在 main() 方法中將閉包返回給呼叫者,之後 ... 閱讀更多

Java 中 lambda 表示式的特徵是什麼?

raja
更新於 2020-07-10 12:44:50

953 瀏覽量

lambda 表示式是在 Java 8 中引入的,它促進了函數語言程式設計。lambda 表示式只能很好地與函式式介面一起使用,並且不能將 lambda 表示式與多個抽象方法一起使用。Lambda 表示式的特徵可選型別宣告 - 無需宣告引數的型別。編譯器從引數的值推斷出相同的型別。引數周圍的可選括號 - 無需在括號中宣告單個引數。對於多個引數,需要使用括號。可選花括號 - 如果表示式主體包含一個 ... 閱讀更多

如何在 Java 中使用 lambda 表示式處理異常?

raja
更新於 2020-07-10 12:01:45

3K+ 瀏覽量

lambda 表示式主體不能丟擲函式式介面中未指定的任何異常。如果 lambda 表示式可以丟擲異常,則函式式介面的“throws”子句必須宣告相同的異常或其子型別之一。示例介面 Student {    void studentData(String name) throws Exception; } public class LambdaExceptionTest {    public static void main(String[] args) {       // lambda 表示式         Student student = name -> {          System.out.println("學生姓名為:" + name);          throw new Exception();       };       try {          student.studentData("Adithya");       } catch(Exception e) {       }    } }輸出學生姓名為:Adithya

如何在 Java 中在 lambda 表示式中使用 final 或有效 final 變數?

raja
更新於 2020-07-10 11:58:59

2K+ 瀏覽量

有效 final 變數是指未顯式宣告為 final 的區域性變數,並且在初始化後不能更改。lambda 表示式只能使用外部作用域中的區域性變數,前提是它們是有效 final 的。語法(可選) (引數) -> 主體在下面的示例中,“size”變數未宣告為 final,但它是有效 final 的,因為我們沒有修改“size”變數的值。示例介面 Employee {    void empData(String empName); } public class LambdaEffectivelyFinalTest {    public static void main(String[] args) {       int size = 100;       Employee emp = name -> {        // lambda ... 閱讀更多

廣告

© . All rights reserved.