首頁 >Java >java教程 >方法參考

方法參考

Linda Hamilton
Linda Hamilton原創
2025-01-14 08:56:42511瀏覽

Referências de método

  • 概念:方法引用允許您引用方法而不執行它。

  • 與 lambda 表達式的關係: 兩者都需要由相容的函數介面組成的目標類型上下文。

  • 函數實例:方法引用在求值時建立函數介面的實例。

靜態方法的引用

  • 類別名稱和方法以雙冒號(::)分隔,在 JDK 8 中插入。

  • 可以在與目標類​​型相容的任何地方使用。

靜態方法引用範例

  • 功能介面:
    名稱:IntPredicate
    方法:測試(int值)
    參數:一個整數。
    傳回:一個布林值(測試整數值的條件)。

  • 輔助類:
    名稱:MyIntPredicates
    實作的靜態方法:
    isPrime():檢查數字是否為質數。
    isEven():檢查數字是否為偶數。
    isPositive():檢查數字是否為正。

  • 主要方法:
    名稱:numTest()
    參數:
    對 IntPredicate.
    介面的引用 正在測試的整數。

  • 執行:
    在 main() 方法中,使用 numTest() 執行了三個測試。
    對於每個測試,都會將特定的方法引用(isPrime、isEven、isPositive)作為執行參數傳遞。

// 示範對靜態方法的引用。
// 使用
進行操作的數字謂詞的函數接口 // 整數值。
介面 IntPredicate {
布林測試(int n);
}
// 類別定義了三個檢查整數的靜態方法
// 與某些條件相關。
類別 MyIntPredicates {
// 一個靜態方法,當數字為質數時傳回 true。
靜態布林 isPrime(int n) {
if(n for(int i=2; i if((n % i) == 0)
回傳錯誤;
}
返回真;
}
// 靜態方法,當數字為偶數時傳回 true。
靜態布林 isEven(int n) {
回 (n % 2) == 0;
}
// 一個靜態方法,當數字為正數時傳回 true。
靜態布林 isPositive(int n) {
返回n> 0;
}
}
類別 MethodRefDemo {
// 此方法有一個函數式介面作為其型別
// 第一個參數。因此,您可能會收到
的參考 // 此介面的任何實例,包括建立的
// 透過方法引用。
static boolean numTest(IntPredicate p, int v) {
返回 p.test(v);
}
public static void main(String args[])
{
布爾結果;
// 這裡,對 isPrime 方法的參考傳遞給 numTest().
結果 = numTest(MyIntPredicates::isPrime, 17);
if(result) System.out.println("17 是質數。");
// 然後使用 isEven 方法的參考。
結果 = numTest(MyIntPredicates::isEven, 12);
if(result) System.out.println("12 是偶數。");
// 現在傳遞了 isPositive 方法的參考。
結果 = numTest(MyIntPredicates::isPositive, 11);
if(result) System.out.println("11 是正數。");
}
}

  • 靜態方法 isPrime() 的參考是作為參數傳遞給 numTest() 方法。

  • isPrime() 方法與 IntPredicate 函數介面相容。

  • 表達式 MyIntPredicates::isPrime 建立一個引用,其中 isPrime() 實作 IntPredicate 的 test() 方法。

  • 對 numTest() 的其他呼叫遵循相同的相容性和操作原理。

  • 任何具有布林簽章 test(int n) 的方法都可以用作 IntPredicate 介面的參考。

以上是方法參考的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn