3分鐘,學會一個測試員必懂 Lambda 小知識!

今天再來給大家介紹下函數式接口和方法引用。

函數式接口

問:Lambda?表達式的類型是什么?

答:函數式接口

問:函數式接口是什么?

答:只包含一個抽象方法的接口,稱為函數式接口 (functional interface) , 一般用 @FunctionalInterface 注解來檢測是否是函數式接口。

自定義函數式接口

@FunctionalInterface
public interface MyFunctionalInterface {String test(String p);
}使用泛型
@FunctionalInterface
public interface MyFunctionalInterface<T,R> {R test(T t);
}

函數式接口作為方法參數

public void test(MyFunctionalInterface mfi,String str) {System.out.println(mfi.getValue(str));
}調用test()
test(p -> p.toUpperCase(),"luojie");
控制臺輸出:
LUOJIE

常見函數式接口

在這里插入圖片描述

方法引用

問:什么是方法引用?

答:當我們需要完成的 Lambda 體操作,已經有實現的方法了,可以使用方法引用!

問:為什么用方法引用?

答:省略參數,少寫代碼

舉個例子

Comparator<Integer> com2 = (x, y) -> Integer.compare(x,y);
//上面我們之前學過的Lambda表達式,其中Lambda體操作是比較兩個整數的大小,
//而且Integer的compare()正好完就是我需要完成的操作。
//可以方法引用替代
Comparator<Integer> com3 = Integer::compare;

方法引用格式

方法引用使用操作符 :: 將方法名和對象或類的名字分開。

分三種格式:

  • 類::靜態方法

  • 對象::實例方法

  • 類::實例方法

類::靜態方法

(x, y) -> Integer.compare(x,y);
方法引用改造:
Integer::compare;

對象::實例方法

(x) -> System.out.printf(x);
方法引用改造:
System.out::println;

類::實例方法

test((x,y)->x.equals(y),"123","123");
方法引用改造:
test(String::equals,"123","abc");  
注意:當引用方法的第一個參數是調用對象,并且第二個參數是需要傳入參數(或無參數)時:ClassName::methodName
比如上例子中:"123"當作equals方法調用對象,"abc"為傳入equals()參數。
相當于:"123".equals("abc")

?

作為一個軟件測試的過來人,我想盡自己最大的努力,幫助每一個伙伴都能順利找到工作。所以我整理了下面這份資源,現在免費分享給大家,有需要的小伙伴可以關注【公眾號:開心螺螄粉】自提!

軟件測試面試文檔

我們學習必然是為了找到高薪的工作,下面這些面試題是來自阿里、騰訊、字節等一線互聯網大廠最新的面試資料,并且有字節大佬給出了權威的解答,刷完這一套面試資料相信大家都能找到滿意的工作。在這里插入圖片描述

在這里插入圖片描述

行動吧,在路上總比一直觀望的要好,未來的你肯定會感謝現在拼搏的自己!如果想學習提升找不到資料,沒人答疑解惑時,請及時加入群:1150305204,里面有各種測試開發資料和技術可以一起交流哦。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/719569.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/719569.shtml
英文地址,請注明出處:http://en.pswp.cn/news/719569.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux服務器磁盤及內存用量監控Python腳本(推送釘釘群通知)

文章目錄 Python 腳本釘釘推送通知定時任務 Python 腳本 # -*- coding: utf-8 -*- import subprocessdef get_disk_usage():# 執行 df 命令獲取磁盤使用情況df_process subprocess.Popen([df, -h, /], stdoutsubprocess.PIPE)output, _ df_process.communicate()output out…

Lua 篇(一)— 安裝運行Hello World

目錄 前言一、Lua 是什么&#xff1f;二、Lua和C#的區別三、安裝 LuaLinux 系統上安裝Mac OS X 系統上安裝Window 系統上安裝emmyluaRider 安裝(推薦) 四、Lua學習資料 前言 Lua 是一種輕量級的嵌入式腳本語言&#xff0c;它可以與 C 語言無縫集成&#xff0c;提供了強大的編程…

YOLOv6-Openvino和ONNXRuntime推理【CPU】

1 環境&#xff1a; CPU&#xff1a;i5-12500 Python&#xff1a;3.8.18 2 安裝Openvino和ONNXRuntime 2.1 Openvino簡介 Openvino是由Intel開發的專門用于優化和部署人工智能推理的半開源的工具包&#xff0c;主要用于對深度推理做優化。 Openvino內部集成了Opencv、Tens…

庫函數和頭文件

難道要求平方根也要自己寫一個&#xff1f; #include<iostream> #include<cmath>//頭文件<cmath>中包含許多數學庫函數 using namespace std; int main() {double a;cin>>a;if(a<0) {cout<<"Illegal input"<<endl;return 0;…

PHP語言常見面試題:在PHP中,如何聲明變量?變量的作用域是什么?

在PHP中&#xff0c;聲明變量非常直接和簡單。您只需要在變量名前加上$符號&#xff0c;然后為其分配一個值。這里有一個基本的例子&#xff1a; php復制代碼 <?php $variableName "Hello, World!"; // 聲明一個名為 $variableName 的變量&#xff0c;并賦值為…

DataGrip 2023:讓數據庫開發變得更簡單、更高效 mac/win

JetBrains DataGrip 2023是一款功能強大的數據庫IDE&#xff0c;專為數據庫開發和管理而設計。通過DataGrip&#xff0c;您可以連接到各種關系型數據庫管理系統(RDBMS)&#xff0c;并使用其提供的一組工具來查詢、管理、編輯和開發數據庫。 DataGrip 2023軟件獲取 DataGrip 2…

前端學習第七天-css常用樣式設置

達標要求 掌握元素的顯示與隱藏 熟練應用溢出的文字隱藏 熟練掌握版心和布局流程 1. 元素的顯示與隱藏 在CSS中有三個顯示和隱藏的單詞比較常見&#xff0c;我們要區分開&#xff0c;他們分別是 display visibility 和 overflow。 他們的主要目的是讓一個元素在頁面中消失…

94、利用多線程優化卷積運算

上一節簡單介紹了多線程的概念,同時也介紹了在使用多線程編程時,對于數據在線程間的切分,應該遵循的一個原則:那就是切分獨立的數據快,而不切分有數據依賴的數據塊。 最后還拋出了一個問題:對于卷積算法而言,你覺的切分哪個維度最合適呢? 卷積的切分 之前花了很多篇幅…

數據結構從入門到精通——鏈表

鏈表 前言一、鏈表1.1 鏈表的概念及結構1.2 鏈表的分類1.3 鏈表的實現1.4 鏈表面試題1.5 雙向鏈表的實現 二、順序表和鏈表的區別三、單項鏈表實現具體代碼text.htext.cmain.c單鏈表的打印空間的開辟鏈表的頭插、尾插鏈表的頭刪、尾刪鏈表中元素的查找鏈表在指定位置之前、之后…

LabVIEW齒輪傳動健康狀態靜電在線監測

LabVIEW齒輪傳動健康狀態靜電在線監測 隨著工業自動化的不斷發展&#xff0c;齒輪傳動作為最常見的機械傳動方式之一&#xff0c;在各種機械設備中發揮著至關重要的作用。然而&#xff0c;齒輪在長期運行過程中易受到磨損、變形等因素影響&#xff0c;進而影響整個機械系統的穩…

日常工作總結

日常工作總結 1000. JAVA基礎1. 泛型1.1 泛型和Object的區別 1100. Spring1. 常用注解1.1 ControllerAdvice注解1.2 緩存Cacheable 2. 常用方法2.1 BeanUtils.copyProperties的用法 3. 常用功能組件3.1 過濾器Filter 2000. Linux應用 1000. JAVA基礎 1. 泛型 1.1 泛型和Objec…

【爬蟲實戰】——Python爬取天氣信息

&#x1f349;CSDN小墨&曉末:https://blog.csdn.net/jd1813346972 個人介紹: 研一&#xff5c;統計學&#xff5c;干貨分享 ???????? 擅長Python、Matlab、R等主流編程軟件 ???????? 累計十余項國家級比賽獎項&#xff0c;參與研究經費10w、40w級橫向 文…

大模型推薦落地啦!融合知識圖譜,螞蟻集團發布!

引言&#xff1a;電商推薦系統的新突破 隨著電子商務平臺的蓬勃發展&#xff0c;推薦系統已成為幫助用戶在信息過載時代中篩選和發現產品的關鍵工具。然而&#xff0c;傳統的推薦系統主要依賴歷史數據和用戶反饋&#xff0c;這限制了它們在新商品推出和用戶意圖轉變時的有效性…

使用AspectJ進行面向切面編程(AOP)

第1章 引言 大家好&#xff0c;我是小黑&#xff0c;業務開發中&#xff0c;咱們經常會遇到這樣的情況&#xff1a;有些代碼幾乎在每個方法里都要用到&#xff0c;比如日志記錄、權限校驗、或者性能監測。如果每次都手動加入這些代碼&#xff0c;不僅效率低下&#xff0c;而且…

深入了解接口測試:方法、工具和關鍵考慮因素

接口測試是軟件測試中的一項重要工作&#xff0c;它涉及到系統與系統之間的交互點。接口可以是外部接口&#xff0c;也可以是內部接口&#xff0c;包括上層服務與下層服務接口以及同級接口。在接口測試中&#xff0c;我們需要確保接口能夠按照預期的方式進行通信和交互&#xf…

C++ 模擬OJ

目錄 1、1576. 替換所有的問號 2、 495. 提莫攻擊 3、6. Z 字形變換 4、38. 外觀數列 5、 1419. 數青蛙 1、1576. 替換所有的問號 思路&#xff1a;分情況討論 ?zs&#xff1a;左邊沒有元素&#xff0c;則僅需保證替換元素與右側不相等&#xff1b;z?s&#xff1a;左右都…

Java - List排序

List排序方法 主要有三種方法&#xff08;按推薦度排序&#xff09;&#xff1a; JDK8的streamComparator#compare()Comparable#compareTo() 法1&#xff1a;list的sort() package com.example.a;import java.util.ArrayList; import java.util.Comparator; import java.util…

pyqt5 QWebEngineView 重寫mousepressevent捕獲鼠標點擊事件,無響應

QWebEngineView 加載網頁后&#xff0c;重寫mousepressevent捕獲鼠標點擊事件&#xff0c;無響應原因是 QWebEngineView在加載界面后&#xff0c;被本身的child接收了該事件&#xff0c; 解決辦法&#xff1a;同過重載event&#xff0c;截取QEvent::ChildAdded事件 from PyQ…

islide2024免費版PPT插件下載

一、功能概覽 iSlide PPT插件是一款專為PowerPoint用戶設計的輔助工具&#xff0c;其功能全面且實用&#xff0c;主要包括但不限于以下幾點&#xff1a; 設計元素庫&#xff1a;提供豐富的設計元素&#xff0c;如主題、布局、圖標、配色等&#xff0c;用戶可以直接拖拽使用&a…