找到 4330 篇文章 關於 Java 8

如何在 Java 中使用泛型方法引用?

raja
更新於 2020年7月11日 12:25:52

777 次瀏覽

方法引用在 Java 8 中引入,類似於 lambda 表示式。它允許我們引用方法或建構函式而不執行它們。方法引用和 lambda 表示式需要一個目標型別,該型別包含相容的函式式介面。我們還可以在 java 中將方法引用與泛型類和泛型方法一起使用。示例介面 MyFunc { int func(T[] vals, T v); } 類 MyArrayOps { static int countMatching(T[] vals, T v) { int count = 0; for(int i=0; i < vals.length; i++) if(vals[i] == v) count++; return count; ... 閱讀更多

什麼是 Java 中的泛型函式式介面?

raja
更新於 2020年7月11日 12:23:09

3K+ 次瀏覽

lambda 表示式不能指定型別引數,因此它不是泛型的。但是,與 lambda 表示式關聯的函式式介面是泛型的。在這種情況下,lambda 表示式的目標型別由宣告函式式介面引用時指定的引數型別確定。語法介面 SomeFunc { T func(T t); } 示例介面 MyGeneric { T compute(T t); } 公共類 LambdaGenericFuncInterfaceTest { 公共靜態無效主要(字串引數[]){ MyGeneric reverse = (str) -> { // Lambda 表示式 字串結果 = ""; for(int i = str.length()-1; i >= 0; i--) ... 閱讀更多

Java 中 lambda 表示式中區域性變數的規則是什麼?

raja
更新於 2020年7月11日 11:57:48

4K+ 次瀏覽

lambda 表示式可以捕獲變數,例如區域性變數和匿名類。換句話說,它們對封閉作用域的區域性變數具有相同的訪問許可權。在 lambda 表示式中使用區域性變數時,我們需要遵循一些規則。lambda 表示式不能像匿名內部類那樣定義任何新的作用域,因此我們不能宣告一個與 lambda 表示式的封閉作用域中已宣告的區域性變數相同的區域性變數。在 lambda 表示式內部,我們不能為在 lambda 表示式外部宣告的任何區域性變數賦值。因為在 lambda 表示式外部宣告的區域性變數可以是 final 或有效 final。該規則的 ... 閱讀更多

如何在 Java 中的 lambda 表示式中使用 ArrayList?

raja
更新於 2020年7月11日 11:40:27

2K+ 次瀏覽

lambda 表示式是可以在不建立匿名類的情況下實現函式式介面的內聯程式碼。ArrayList 可用於儲存動態大小的元素集合。在下面的程式中,我們使用 removeIf() 方法刪除了年齡小於或等於 20 的 ArrayList 元素。此方法在 Java 8 版本中引入,用於刪除滿足條件的集合中的所有元素。語法public boolean removeIf(Predicate filter) 引數 filter 是一個 Predicate。如果給定的謂詞滿足條件,則可以刪除該元素。此方法返回布林值 true 如果元素被刪除,則為 false。示例匯入 java.util.*; ... 閱讀更多

如何在 Java 的方法引用中使用 this 和 super 關鍵字?

raja
更新於 2020年7月11日 08:55:49

912 次瀏覽

方法引用類似於 lambda 表示式,它引用方法而不執行它,並且“::”運算子可用於在方法引用中將方法名與物件名或類名分隔開。可以使用 this 和 super 關鍵字在 Java 中引用方法。super 關鍵字可用作限定符來呼叫類或介面中的重寫方法。語法this::instanceMethod TypeName.super::instanceMethod示例匯入 java.util.function.Function; 介面 Defaults { 預設整數 doMath(整數 a) { 返回 2 * a; } } 公共類計算器實現 Defaults { ... 閱讀更多

什麼是 Java 中 lambda 表示式的目標型別?

raja
更新於 2020年7月11日 08:30:22

2K+ 次瀏覽

呼叫 lambda 表示式的函式式介面稱為 lambda 表示式的目標型別。這意味著如果為某個“X”介面呼叫 lambda 表示式,則“X”是該 lambda 表示式的目標型別。因此,我們得出結論,lambda 表示式只能在 java 編譯器可以確定目標型別的情況下使用。在下面的示例中,lambda 表示式的目標型別是 BiFunction。自動建立實現函式式介面的類的例項,並且 lambda 表示式提供函式式介面宣告的抽象方法的實現。示例介面 BiFunction { ... 閱讀更多

在 Java lambda 表示式中使用異常時應遵循哪些規則?

raja
更新於 2019年12月20日 08:36:16

3K+ 次瀏覽

lambda 表示式不能單獨執行。它用於實現在函式式介面中宣告的方法。為了在 lambda 表示式中使用異常處理機制,我們需要遵循一些規則。lambda 表示式的規則lambda 表示式不能丟擲任何已檢查異常,除非其對應的函式式介面聲明瞭 throws 子句。任何 lambda 表示式丟擲的異常都必須與其函式式介面的 throws 子句中宣告的異常型別相同或為其子型別。示例-1介面 ThrowException { void throwing(String message); } 公共類 LambdaExceptionTest1 { ... 閱讀更多

如何在 Java 中將 lambda 表示式作為方法引數傳遞?

raja
更新於 2019年12月19日 13:09:20

7K+ 次瀏覽

lambda 表示式是 Java 中的匿名或未命名方法。它本身不執行,用於實現函式式介面中宣告的方法。如果我們想在 java 中將 lambda 表示式作為方法引數傳遞,則接收方法引數的型別必須是函式式介面型別。示例介面 Algebra { int operate(int a, int b); } 列舉 Operation { ADD, SUB, MUL, DIV } 公共類 LambdaMethodArgTest { 公共靜態無效主要(字串[] 引數) { print((a, b) -> ... 閱讀更多

如何在 Java 的 lambda 表示式中編寫條件表示式?

raja
更新於 2020年7月11日 07:48:12

3K+ 次瀏覽

Java 中使用條件運算子來建立條件表示式。它也稱為三元運算子,因為它有三個運算元:布林條件、第一個表示式和第二個表示式。我們還可以在下面的程式中用 lambda 表示式編寫條件表示式。示例interface Algebra {    int substraction(int a, int b); } public class ConditionalExpressionLambdaTest {    public static void main(String args[]) {       System.out.println("The value is: " + getAlgebra(false).substraction(20, 40));       System.out.println("The value is: " + getAlgebra(true).substraction(40, 10));    }    static Algebra getAlgebra(boolean reverse) {       Algebra alg = reverse ... 閱讀更多

什麼是 Java 中的型別轉換表示式?

raja
更新於 2020年7月11日 07:40:37

660 次瀏覽

型別轉換表示式提供了一種機制,可以在無法從上下文中方便地推斷 lambda 表示式的型別時顯式提供其型別。當方法宣告被與無關的函式式介面型別過載時,它也用於解決歧義。語法Object o = () -> { System.out.println("TutorialsPoint"); }; // 非法: Object o = (Runnable) () -> { System.out.println("TutorialsPoint"); }; // 合法示例interface Algebra1 {    int operate(int a, int b); } interface Algebra2 {    int operate(int a, int b); } public class LambdaCastingTest {    public static void main(String[] args) {       printResult((Algebra1)(a, b) -> a + b);  // 型別轉換表示式 ... 閱讀更多

廣告
© . All rights reserved.